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
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
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
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.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
#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
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
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()
           {
           }
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
               #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();
               }
//--------------------------------------------------------------------------------------------------------------