IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

envoyer un pointeur à mon slot !


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut envoyer un pointeur à mon slot !
    J'ai un soucis !

    Voici ma connection:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        QObject::connect(valider, SIGNAL(clicked(t_jouer*)), MainWindow, SLOT(trouver(t_jouer*)));

    Il y a bien une chose dont je suis sure, c'est que la syntaxe est fausse et que le programme ne rentre même pas dans mon
    void trouver(t_jouer* jouer);


    Ma question est la suivante, comment faire pour passer mon t_jouer* a ma fonction ? Merci d'avance

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut,
    tu faire passer un pointeur en paramètre.
    D'où vien le signal clicked(t_jouer*)?

    Un conseil, évite de faire transvasé des pointeurs par connect. Dans un expace mutithread, cela génère beaucoup de problème.

    Pourquoi as tu besoin de cela?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut
    en fait je détecte le clique sur un bouton (rien de sorcier jusque là)
    et la fonction appelée (slot/callback) a besoin d'acceder à une structure de données pour vérifier si l'utilisateur a, ou non, gagné la partie (il s'agit d'un jeu).

    Vu que je manie pas encore très bien Qt, je sais pas vraiment comment m'y prendre.


    Pour ceux qui connaissent Gtk, c'est un peu le principe de la fonction

    gtk_signal_connect_object(GTK_OBJECT(MonBouton), "clicked", GTK_CALLBACK(ma fonction a appelée), jouer);

    ou le pointeur jouer est envoyé a la fonction a appelé lorsque un clique est effectué sur MonBouton (il faut juste caster jouer si ma mémoire est bonne)

  4. #4
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut
    salut,

    avec Qt, tu dois strictement respecter la signature du signal dans le slot.

    Un QPushButton (qui dérive de QAbstractButton) ne propose pas de signal 'clicked' avec une signature composée d'un pointeur en paramètre (uniquement un booléen). Donc ton slot ne peut que prendre un et un seul paramètre: un booléen.

    Si tu veux récupérer dans ton slot un pointeur sur l'objet qui a émis le signal, Qt te propose néanmoins une solution: QObject::sender().

    Sinon, si ton pointeur doit correspondre à autre chose, tu peux faire une classe dérivée de QPushButton pour y implémenter ton propre signal avec la signature que tu désires.
    A partir de là, tu pourras rediriger le signal clicked(bool) vers un slot en interne qui ne fera qu'émettre ton signal à toi avec le bon paramètre.
    (c'est évidemment une solution parmi d'autres)

    Je te conseille de lire jeter un oeil à la doc de Qt sur les signaux/slots

Discussions similaires

  1. Envoyer par mail mon fichier modifié
    Par mattwarend dans le forum Macros et VBA Excel
    Réponses: 46
    Dernier message: 17/11/2008, 14h04
  2. Réponses: 10
    Dernier message: 28/08/2008, 13h00
  3. Réponses: 7
    Dernier message: 09/07/2008, 19h11
  4. Réponses: 6
    Dernier message: 29/04/2008, 17h24
  5. Perte du pointeur à mon objet
    Par Maxou22 dans le forum C++
    Réponses: 1
    Dernier message: 11/03/2006, 05h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo