Bonjour à tous,
Je suis en train de faire mes premiers pas en Qt.
Pour m'entrainer un peut je suis en train de faire des petites applications afin de voir la philosophie de la lib Qt.
Je voudrais faire un convertisseur Euro-Dolar comme exemple afin de voir comment ça marche les slots, les connexions etc...
J'ai trouve l'erreur " home/qt_slots/src/converter.cpp:54: undefined reference to `vtable for Converter' ". Je pense qu'il est lié à l'heritage virtuel de Converter (?).
Mon code est le suivant:
MAIN :
converter.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <QApplication> #include "converter.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); Converter aConverter; return app.exec(); }
converter.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 #include <QDialog> class Converter : public QDialog { Q_OBJECT public : Converter(); ~Converter(); public slots : void euroChanged(int aNum); private : int _euroValue; };
Aussi j'ai 3 questions de plus...
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 #include <QCoreApplication> #include "converter.h" #include <QPushButton> #include<QGridLayout> #include<QLabel> #include <QLineEdit> Converter::Converter() { QWidget aWindow; //declaring a main layout in a window QGridLayout * aMainLayout = new QGridLayout(&aWindow); //declaring the labels QLabel * aLabel1 = new QLabel("Euros"); QLabel * aLabel2 = new QLabel("Dolars"); //declaring a text line QLineEdit * aLine1 = new QLineEdit; QLineEdit * aLine2 = new QLineEdit; //declaring the button QPushButton * aButtonConvert = new QPushButton("Convert"); QPushButton * aButtonQuit = new QPushButton("Quit"); //adding the labels in the main layout aMainLayout->addWidget(aLabel1,0,0); aMainLayout->addWidget(aLine1,0,1); aMainLayout->addWidget(aLabel2,1,0); aMainLayout->addWidget(aLine2,1,1); //adding the button onto the main layout aMainLayout->addWidget(aButtonQuit,2,0); aMainLayout->addWidget(aButtonConvert,2,1); aWindow.show(); //catching the signal and executing the callback QObject::connect(aButtonQuit, SIGNAL(clicked()), this, SLOT(quit())); QObject::connect(aButtonConvert,SIGNAL(clicked()), this, SLOT(euroChanged(4))); //Comment prendre la valeur du LineEdit Euro à la place de 4 ?? }; Converter::~Converter() {}; void Converter::euroChanged(int iNum) { //int aNum = iString.toInt(); qDebug("Hello from euroChanged"); //setEuroValue(aNum); //Comment renvoyer la valeur sur la Line Edit des Dolars ?? };
Comment prendre la valeur du LineEdit Euro à la place de 4 pour la recupérer dans la méthode euroChanged ?
Comment renvoyer le résultat à la LineEdit Dolar une fois qu'on a fait la conversion ?
Pouvez vous me donner des conseilles pour avoir une structure de l'application (conseilles de bonne programmation en général)?
Merci de votre aide, vous etes super !
Partager