problème de connexion signaux/slots d'une classe à une autre
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:
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:
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:
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:
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:
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();
}
//-------------------------------------------------------------------------------------------------------------- |