[langage C++ - Qt]Connecter l'ouverture d'une sous fenetre Mdi avec un QCheckBox
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

[langage C++ - Qt]Connecter l'ouverture d'une sous fenetre Mdi avec un QCheckBox



  1. #1
    piwi

    [langage C++ - Qt]Connecter l'ouverture d'une sous fenetre Mdi avec un QCheckBox


    ------

    Bonjour à tous.

    Ayant trouvé ici les réponses à mes questions dernièrement, je persévere. J'ai suivi les conseils que l'on m'avait donné et ai switché du C-GTK vers le C++-Qt. Malheureusement je ne suis toujours pas surdoué et si tout allait bien jusqu'ici me voici confronté à un nouveau souci que je ne parviens pas à résoudre malgré la doc officielle que je consulte assidument.
    J'ai mis en place une fenêtre principale Mdi. L'idée de base est de proposer un dock qui permettra à l'utilisateur d'ouvrir ou de fermer plusieurs fenêtres réalisant chacune certaines actions.
    Pas trop à l'aise encore avec Qt j'ai procédé en deux temps
    1. Créer une sous fenêtre RevComp (j'ai crée une classe Fenetre pour alléger le code) qui opère une transformation de chaine. Ca c'est OK. Pas de souci. Je n'en mets pas le code, le problème n'est pas là.
    2. Créer mon dock. Ok, j'ai un dock avec un joli bouton cochable.

    Maintenant le souci c'est pour connecter l'ouverture ou la fermeture de la fenêtre RevComp avec mon bouton dans mon dock.
    Code:
    header .h
    #ifndef HEADER_FENPRINCIPALE
    #define HEADER_FENPRINCIPALE
    
    #include <QtGui>
    class FenPrincipale : public QMainWindow
    {
    	public:
        FenPrincipale();
    	
            public slots:
        void open_RevComp();
        
    	private:
        QMdiArea *zoneCentrale;
    };
    Code:
    source .cpp
    #include <QApplication>
    #include <QtGui>
    #include "FenPrincipale.h"
    #include "ReverseComplement.h"
    FenPrincipale::FenPrincipale()
    {
    //Creation du dock
    QDockWidget *dock = new QDockWidget("Palette", this);
        addDockWidget(Qt::LeftDockWidgetArea, dock);
    
    QWidget *contenuDock = new QWidget;
        dock->setWidget(contenuDock);
        QCheckBox *cb_RevComp = new QCheckBox("Reverse-Complement");
        QVBoxLayout *dockLayout = new QVBoxLayout;
        dockLayout->addWidget(cb_RevComp,  Qt::AlignTop);
        dockLayout->addStretch();
        contenuDock->setLayout(dockLayout);
    
    //Creation de la zone centrale MDI
    QMdiArea *zoneCentrale = new QMdiArea;
        setCentralWidget(zoneCentrale);
    
    //Connexion des boutons
    connect(cb_RevComp, SIGNAL(toggled(true)), this, SLOT(open_RevComp()));
    };
    
    void FenPrincipale :: open_RevComp()
    {
    	Fenetre *RevComp = new Fenetre;
        zoneCentrale->addSubWindow(RevComp);
    };
    Pour l'instant mon idée est d'au moins réussir à créer cette maudite fenêtre quand je coche le bouton. Je chope donc le signal toogled de mon bouton (le résultat est le même quand j'utilise checkState()) Mais là ça ne marche pas du tout, le compilateur me renvoie ceci:
    Object::connect: No such signal QCheckBox::toggled(true)

    Alors ma question est simple dans l'énoncé. Comment fait on pour connecter l'ouverture/fermeture d'une sous fenêtre Mdi au cochage d'un QCheckBox?

    Par avance merci pour tout.
    Cordialement,
    piwi

    -----
    Dernière modification par piwi ; 25/07/2010 à 11h10.
    Je sers la science et c'est ma joie.... Il parait.

  2. #2
    invite66b35789

    Re : [langage C++ - Qt]Connecter l'ouverture d'une sous fenetre Mdi avec un QCheckBox

    Il me semble qu'il faut que le SLOT aie autant de paramètre que le signal.
    Sinon tu a essayé avec d'autre signaux ? clicked(), stateChanged() ?
    Dernière modification par JPL ; 25/07/2010 à 14h18. Motif: Correction du titre

  3. #3
    invite2d7144a7

    Re : [langage C++ - Qt]Connecter l'ouverture d'une sous fenetre Mdi avec un QCheckBox

    Bonjour,
    Citation Envoyé par jerror404 Voir le message
    Il me semble qu'il faut que le SLOT aie autant de paramètre que le signal.
    +1, et il faut également qu'ils soient du même type, sinon ça risque de faire des choses bizarres.
    Dernière modification par JPL ; 25/07/2010 à 14h19. Motif: Correction du titre

  4. #4
    inviteb9f49292

    Re : [langage C++ - Qt]Connecter l'ouverture d'une sous fenetre Mdi avec un QCheckBox

    Un très rapide coup d'oeil, et cette ligne me l'a crevé (l'oeil):
    SIGNAL(toggled(true))
    Ce n'est pas un argument que tu dois mettre, mais bien le type de l'argument attendue, à remplacer par:
    SIGNAL(toggled(bool))

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Langage C (mesure d'une trame avec un timer)
    Par invite92143d06 dans le forum Électronique
    Réponses: 2
    Dernier message: 09/06/2010, 09h25
  2. Fenêtre impestive mozilla lors de l'ouverture d'internet explorer
    Par invite28ac953a dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 3
    Dernier message: 20/12/2008, 22h23
  3. ouverture d'une fenetre "connectez vous avec microsoft .net passport
    Par invite1e88294e dans le forum Internet - Réseau - Sécurité générale
    Réponses: 8
    Dernier message: 18/05/2005, 12h18
  4. Affichage d'une fenêtre en C sous Windows CE ...
    Par invite1a99f682 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 04/05/2005, 14h03
  5. Pour automatisez l'ouverture de la fenetre cd
    Par invite0a3b6f64 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 13/04/2004, 17h08
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...