Probleme de link application Qt sur Dev-C++

Signaler
Messages postés
34
Date d'inscription
samedi 21 janvier 2006
Statut
Membre
Dernière intervention
12 juillet 2008
-
Messages postés
92
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
16 janvier 2007
-
Bonsoir, mon probleme est le suivant :

Lorsque je compile mes sources j'obtiens des erreurs de link :


[Linker error] undefined reference to `vtable for MyApp'

[Linker error] undefined reference to `vtable for MyApp'

[Linker error] undefined reference to `vtable for MyApp'

[Linker error] undefined reference to `vtable for MyApp'

ld returned 1 exit status

[Build Error] [Qtpremprog.exe] Error 1


Je ne vois pas où est l'erreur, car j'ai bien configurer mes options de
projets comme il faut, dans l'onglet parametres et le Makefile.


Voici mon code :


ui_premprog.h :

<!-- BEGIN TEMPLATE: bbcode_code -->

Code :

#ifndef UI_PREMPROG_H
#define UI_PREMPROG_H
 
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QLineEdit>
#include <QtGui/QPushButton>
#include <QtGui/QWidget>
 
class Ui_Form
{
public:
QPushButton *bCalculer;
QLineEdit *lineEdit_3;
 
void setupUi(QWidget *Form)
{
Form->setObjectName(QString::fromUtf8("Form"));
bCalculer = new QPushButton(Form);
bCalculer->setObjectName(QString::fromUtf8("bCalculer"));
bCalculer->setGeometry(QRect(210, 180, 75, 23));
lineEdit_3 = new QLineEdit(Form);
lineEdit_3->setObjectName(QString::fromUtf8("lineEdit_3"));
lineEdit_3->setGeometry(QRect(30, 20, 241, 141));
 
retranslateUi(Form);
 
QSize size(307, 224);
size = size.expandedTo(Form->minimumSizeHint());
Form->resize(size);
 
 
QMetaObject::connectSlotsByName(Form);
}// setupUi
 
void retranslateUi(QWidget *Form)
{
Form->setWindowTitle(QApplication::translate("Form", "Form", 0, QApplication::UnicodeUTF8));
bCalculer->setText(QApplication::translate("Form", "PushButton", 0, QApplication::UnicodeUTF8));
Q_UNUSED(Form);
}// retranslateUi
 
};
 
namespace Ui {
class Form: public Ui_Form {};
}// namespace Ui
 
#endif

<!-- END TEMPLATE: bbcode_code -->

MyApp.h :

<!-- BEGIN TEMPLATE: bbcode_code -->

Code :

#ifndef QtpremProg
#define QtpremProg
 
 
#include "ui_premprog.h"
 
 
class MyApp : public QWidget, private Ui::Form
{
Q_OBJECT

public:
MyApp(QWidget *parent = 0);

public slots :
void Ecrire();
};
 
 
#endif

<!-- END TEMPLATE: bbcode_code -->

MyApp1.cpp :

<!-- BEGIN TEMPLATE: bbcode_code -->

Code :

#include <QtGui>
#include "MyApp.h"
 
 
MyApp::MyApp(QWidget *parent)
{
setupUi(this);
connect(bCalculer, SIGNAL(clicked()), lineEdit_3, SLOT(Ecrire()));
}
 
void MyApp::Ecrire()
{
QString chaine = "Ma premiere appli QT en GUI!!!!";

lineEdit_3->setText(chaine);
}

<!-- END TEMPLATE: bbcode_code -->


main.cpp :

<!-- BEGIN TEMPLATE: bbcode_code -->

Code :

#include <QApplication>
 
#include "MyApp.h"
 
int main(int argc, char *argv[])
{
QApplication app(argc, argv);

MyApp *dialogue = new MyApp;

dialogue->show();

return app.exec();
}

<!-- END TEMPLATE: bbcode_code -->


je precise que ui_premprog.h a été crée grâce à Qt designer.

1 réponse

Messages postés
92
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
16 janvier 2007

Salut,
J'ai eu le meme probleme.
Ca vient de la macro Q_OBJECT qui se link avec un fichier ".moc".
T'as un executable moc.exe qui permet de faire ce binaire.

Je te conseille d'utiliser monkey studio pour tes developpement Qt. C'est bien pratique !
Pour tes questions Qt, je te conseille www.qtfr.org.
Les gens connaissent mieux ce genre de probleme.

Jah bless mycode