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 :

QPushButton - slots non fonctionnels


Sujet :

Qt

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 7
    Points : 9
    Points
    9
    Par défaut QPushButton - slots non fonctionnels
    Bonjour,

    j'ai besoin d'aide pour définir des slots,
    en fait j'ai une fenetre QGL avec une toolbar,
    quand je click sur un bouton de la toolbar, une nouvelle fenetre s'ouvre avec plusieurs boutons,
    j'ai fait un connect pour chaque bouton mais les slots ne répondent pas.
    Y a t il quelqu'un qui a déjà défini un slot contenant d'autres slots?

    vous pouvez voir sur la photo:
    je clique sur Light Control et la fenetre qtSofa s'ouvre,
    je voudrais définir un slot pour chaque bouton (enable, up, down, etc)
    Images attachées Images attachées  

  2. #2
    Rédacteur/Modérateur
    Avatar de arnolddumas
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Autriche

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 978
    Points : 7 764
    Points
    7 764
    Par défaut
    Pourrais-tu montrer le squelette de ton code, car je comprends pas vraiment ce que tu souhaites faire.

    Si tu veux juste appeler des slots après le clic sur un bouton comme « Up », il te suffit juste de déclarer des slots privés dans ta classe héritant de QDialog.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    voici le code pour les slots:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    void QSofaLighting::lightingWidget()
    {
    //    QWidget* fen = new QWidget;
        QDialog* fen = new QDialog;
        QGridLayout* layout = new QGridLayout;
        QPushButton* b_enable = new QPushButton("enable");
        connect(b_enable,SIGNAL(triggered()), this,SLOT(enableLight()));
        if (b_enable->isChecked()){QMessageBox::information(this, "hello", "world");}
        QPushButton* b_up    = new QPushButton("up");
        connect(b_up,SIGNAL(triggered()), this,SLOT(upLight()));
        QPushButton* b_down  = new QPushButton("down");
        connect(b_down,SIGNAL(triggered()), this,SLOT(downLight()));
        QPushButton* b_left  = new QPushButton("left");
        connect(b_left,SIGNAL(triggered()), this,SLOT(leftLight()));
        QPushButton* b_right = new QPushButton("right");
        connect(b_right,SIGNAL(triggered()), this,SLOT(rightLight()));
        QPushButton* b_near  = new QPushButton("near");
        connect(b_near,SIGNAL(triggered()), this,SLOT(nearLight()));
        QPushButton* b_far   = new QPushButton("far");
        connect(b_far,SIGNAL(triggered()), this,SLOT(farLight()));
        QPushButton* b_visuLight = new QPushButton("visu Lighting source");
        connect(b_visuLight, SIGNAL(triggered()), this, SLOT(visuLight()) );
     
        layout->addWidget(b_enable, 0, 0);
        layout->addWidget(b_up, 2, 0);
        layout->addWidget(b_down, 2, 1);
        layout->addWidget(b_left, 3, 0);
        layout->addWidget(b_right, 3, 1);
        layout->addWidget(b_near, 4, 0);
        layout->addWidget(b_far, 4, 1);
        layout->addWidget(b_visuLight, 5, 0);
        fen->setLayout(layout);
        fen->show();
    }
    void QSofaLighting::enableLight(){
        /*ischecked_enable =  !ischecked_enable;*/QMessageBox::information(this, "hello", "world");}
    void QSofaLighting::upLight()    {ischecked_up     =  !ischecked_up;   }
    void QSofaLighting::downLight()  {ischecked_down   =  !ischecked_down; }
    void QSofaLighting::leftLight()  {ischecked_left   =  !ischecked_left; }
    void QSofaLighting::rightLight() {ischecked_right  =  !ischecked_right;}
    void QSofaLighting::nearLight()  {ischecked_near   =  !ischecked_near; }
    void QSofaLighting::farLight()   {ischecked_far    =  !ischecked_far;  }
    void QSofaLighting::visuLight()  {/*afficher ou pas la source lumiere*/}

    puis le .h:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public slots:
        void lightingWidget();
    private slots:
        void enableLight();
        void upLight();
        void downLight();
        void leftLight();
        void rightLight();
        void nearLight();
        void farLight();
        void visuLight();

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    problème résolu,
    pour les QPushButton, faut mettre SIGNAL(clicked()) et non SIGNAL(triggered())

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Flash Disque non fonctionnel
    Par stanley dans le forum Composants
    Réponses: 2
    Dernier message: 18/07/2006, 12h18
  2. Code non fonctionnel sous IE
    Par Nip dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/06/2006, 14h59
  3. timage non fonctionnel !!
    Par micky13 dans le forum Delphi
    Réponses: 5
    Dernier message: 13/05/2006, 07h21
  4. Update non fonctionnel
    Par kissmytoe dans le forum Access
    Réponses: 7
    Dernier message: 07/03/2006, 18h37
  5. [REPORTS] Order BY non fonctionnel
    Par sdiack dans le forum Reports
    Réponses: 2
    Dernier message: 10/02/2006, 18h10

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