Bonjour à tous.
Je me trouve confronté à l'erreur suivante pour un auto-connect : No matching signal for on_choixRepertoire_triggered()
Voici le .h qui défini le slot :
et son implémentation dans le .cpp
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 #ifndef INITDB_H #define INITDB_H #include <QDialog> #include <QLineEdit> class initdb : public QDialog { Q_OBJECT public: initdb(); public slots: //void selectionnerRepertoire(); void on_choixRepertoire_triggered(); private: QLineEdit *m_repStockage; QLineEdit *m_nomFichier; }; #endif // INITDB_H
Si je comprends bien le message, le système ne trouverait pas le signal "triggered" correspondant.
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 #include "initdb.h" #include <QPushButton> #include <...> initdb::initdb() { QMetaObject::connectSlotsByName(this); ... QToolButton *choixRepertoire = new QToolButton; choixRepertoire->setGeometry((QRect(290,60,25,19))); choixRepertoire->setText("..."); //connect(choixRepertoire,SIGNAL(clicked(bool)),this, SLOT(selectionnerRepertoire())); ... } //void initdb::selectionnerRepertoire() void initdb::on_choixRepertoire_triggered() { m_repStockage->setText(QFileDialog::getExistingDirectory(this)); qDebug() << m_repStockage->text() << m_nomFichier->text(); }
Pourtant un QToolButton envoie bien ce signal : void QToolButton::triggered(QAction *action).
A noter que si j'active le slot "selectionnerRepertoire" à la place de l'auto-connect, tout fonctionne correctement.
Auriez-vous une piste pour expliquer ce problème, car évidemment, je préfère utiliser un auto-connect plutôt que rajouter une ligne de code supplémentaire... comme certainement beaucoup de programmeurs.
Partager