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; };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: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); };
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
-----