Bonjour,

Je bloque sur ce problème depuis un petit moment déjà. J'ai essayé de voir dans les forums mais n'ai toujours pas compris mon erreur.

J'ai une classe Dialog_cfgGraph qui est une deuxième fenêtré qui contient un CheckBox. J'essaie de faire interagir cette fenêtre avec la fenêtre principale.

Voici son implémentation:
dialog_cfggraph.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
24
25
26
27
28
29
 
#ifndef DIALOG_CFGGRAPH_H
#define DIALOG_CFGGRAPH_H
 
#include <QDialog>
 
namespace Ui {
class Dialog_cfgGraph;
}
 
class Dialog_cfgGraph : public QDialog
{
    Q_OBJECT
 
public:
    explicit Dialog_cfgGraph(QWidget *parent = 0);
    ~Dialog_cfgGraph();
 
private slots:
    void on_checkBox_inflaction_stateChanged(int arg1);
 
public: signals:
    void checkBox_inflation_stateChanging(int state);
 
private:
    Ui::Dialog_cfgGraph *ui;
};
 
#endif // DIALOG_CFGGRAPH_H
dialog_cfggraph.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
 
#include "dialog_cfggraph.h"
#include "ui_dialog_cfggraph.h"
 
Dialog_cfgGraph::Dialog_cfgGraph(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog_cfgGraph)
{
    ui->setupUi(this);
}
 
Dialog_cfgGraph::~Dialog_cfgGraph()
{
    delete ui;
}
 
void Dialog_cfgGraph::on_checkBox_inflaction_stateChanged(int arg1) //slot généré automatiquement avec QT
{
emit checkBox_inflation_stateChanging(arg1); //émet mon slot public récupérable par la classe MainWindow 
}
Dans la classe de ma fenêtre principale j'ai un pointeur de cet objet:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    Dialog_cfgGraph *cfg_Graph_Win;
...
que j’instancie dans le constructeur de la fenêtre principale:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

...

        cfg_Graph_Win = new Dialog_cfgGraph(this);
        connect( cfg_Graph_Win, SIGNAL( checkBox_inflation_stateChanging(int state) ),
                 this, SLOT( on_CGDWin_InflaCheckBox_stateChanged(int arg1) ) );
    cfg_Graph_Win->show();

}
Si dessus en rouge, j'ai connecté le signal checkBox_inflation_stateChanging de cfg_Graph_Win au slot on_CGDWin_InflaCheckBox_stateChanged de la fenêtre principale


Quand l’application s’exécute le message suivante apparait en sortie de l'application:
QObject::connect: No such signal Dialog_cfgGraph::checkBox_inflation_stateChanging(int state) in ..\Prog\mainwindow.cpp:94
QObject::connect: (sender name: 'Dialog_cfgGraph')
QObject::connect: (receiver name: 'MainWindow')
Quelqu'un comprend pourquoi j'ai ce message ?

Autre truc bizarre, code "public signals:" ne compile pas je suis oblige de mettre "public: signals:" alors que "private slots:" passe très bien.