Bonjour,

J'ai importer un projet source sur QT qui possède une interface graphique. Cependant celle-ci pose problème lors de la compile (voir erreur ci-dessous) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
[......]\debug\moc_mainwindow.cpp:83: erreur : undefined reference to `MainWindow::on_pushButton_color_clicked()'
 
error: ld returned 1 exit status
Cette erreur se produit dans le code généré de l'interface graphique (je pense qu'il s'agit de ça ) :

MainWindow (genere) :
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
void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
    if (_c == QMetaObject::InvokeMetaMethod) {
        MainWindow *_t = static_cast<MainWindow *>(_o);
        switch (_id) {
        case 0: _t->on_pushButton_color_clicked(); break;
        case 1: _t->processColorDetection(); break;
        case 2: _t->on_verticalSlider_Threshold_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 3: _t->setColor(); break;
        case 4: _t->setImage(); break;
        default: ;
        }
    }
}
Voici le code de la classe mainwindow.cpp (en partie) :
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
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //select color
    connect(ui->pushButton_color, SIGNAL(clicked()), this, SLOT(setColor()));
    connect(ui->actionChoose_Color, SIGNAL(triggered()), this, SLOT(setColor()));

    //open image
    connect(ui->pushButton_openImage, SIGNAL(clicked()), this, SLOT(setImage()));
    connect(ui->actionOpen_Image, SIGNAL(triggered()), this, SLOT(setImage()));

    //process Color Detection
    connect(ui->pushButton_process, SIGNAL(clicked()), this, SLOT(processColorDetection()));
    connect(ui->actionProcess, SIGNAL(triggered()), this, SLOT(processColorDetection()));

}
Et enfin la définition du widget dans qt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 <widget class="QPushButton" name="pushButton_color">
    <property name="geometry">
     <rect>
      <x>10</x>
      <y>40</y>
      <width>81</width>
      <height>23</height>
     </rect>
    </property>
    <property name="text">
     <string>Select Color</string>
    </property>
   </widget>
Apparemment il n'arrive pas à faire le lien entre la définition du signal "click" dans la classe .cpp et la méthode on_click sur l'interface graphique généré?

Comment puis-je résoudre ce problème?