Bonjour à tous,
Je débute avec Qt et j'ai un problème avec une connexion depuis une COMBOBOX qui se trouve dans une classe et qui doit se connecter à un SLOT qui se trouve dans une autre classe.
si quelqu'un pouvait m'aider cela serait très sympa. Merci d'avance.
Parametres.h
Parametres.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 #ifndef PARAMETRES_H #define PARAMETRES_H #include <QObject> #include <QWidget> #include <QComboBox> class Parametres { public: Parametres(); QComboBox comboBoxTable; signals: void activated(int); public slots: void choixTables(); void choixTab(int); }; #endif // PARAMETRES_H
MaFenetre.h
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 "Parametres.h" #include <QDialog> #include <QComboBox> #include <QDebug> Parametres::Parametres() { } void Parametres::choixTables() { qDebug()<<"Passe par choixTables "; comboBoxTable = new QComboBox(); comboBoxTable -> addItem(QString("Gestion de Tables")); comboBoxTable -> addItem(QString("Table 1")); comboBoxTable -> addItem(QString("Table 2")); comboBoxTable -> setGeometry(10, 485, 204, 25); comboBoxTable -> show(); QObject::connect(comboBoxTable, SIGNAL(activated(int)),this, SLOT(choixTab(int))); } void Parametres::choixTab(int) { int numTable = comboBoxTable->currentIndex(); qDebug()<<"Fonctionnement du signal/Slot.. "<<numTable; }
MaFenetre.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 #ifndef MAFENETRE_H #define MAFENETRE_H #include <QDialog> #include <QComboBox> class MaFenetre : public QDialog { Q_OBJECT public: MaFenetre(QWidget *parent = 0); ~MaFenetre(); private: QComboBox *comboBoxMenu; private slots: void choixMenu(int); void choixTables(); }; #endif // MAFENETRE_H
main.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
24
25
26
27
28
29
30
31
32
33
34
35 #include "MaFenetre.h" #include "Parametres.h" #include <QDebug> #include <QComboBox> using namespace std; int numMenu = 0; int numMesure = 0; int numTable = 0; MaFenetre::MaFenetre(QWidget *parent) : QDialog(parent) { this->setStyleSheet("background-color:" " rgb(233, 185, 110);"); // Définit la couleur de fond de la fenêtre principale setFixedSize(1298, 710); // Taille de la fenêtre principale //------------------------------------------------------------------------------------------------------------------------------- comboBoxMenu = new QComboBox(this); comboBoxMenu -> addItem(QString("Menu de Base")); // Lance une Nouvelle mesure comboBoxMenu -> addItem(QString("Gestion des Mesures")); // Affichage comboBox comboBoxMenu -> addItem(QString("Gestion des TABLES")); // Lance une Nouvelle mesure comboBoxMenu -> setGeometry(10, 425, 204, 25); // Taille et position de la comboBox comboBoxMenu -> show(); // Affiche QObject::connect(comboBoxMenu, SIGNAL(activated(int)), this, SLOT(choixMenu(int))); } void MaFenetre::choixMenu(int) { numMenu = comboBoxMenu->currentIndex(); // Récupére l'index de la comboBox if (numMenu == 2) { QObject::connect(comboBoxMenu, SIGNAL(activated(int)), this, SLOT(choixTables())); } } MaFenetre::~MaFenetre() { }
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 #include "MaFenetre.h" #include <QApplication> #include <QTranslator> #include <QLocale> #include <QLibraryInfo> #include <QDialog> #include <QComboBox> int main(int argc, char *argv[]) { QApplication app(argc, argv); //-------------------------------------------------------------------------------------------------------------- // Morceau de code pour la traduction en français des boites de messages //-------------------------------------------------------------------------------------------------------------- QString locale = QLocale::system().name().section('_', 0, 0); QTranslator translator; translator.load(QString("qt_") + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath)); app.installTranslator(&translator); MaFenetre demo; demo.show(); return app.exec(); } //--------------------------------------------------------------------------------------------------------------
Partager