Bonjour,
j'ai créé un petit programme qui demande de trouver le résultat de 10 multiplications (de nombres compris entre 1 et 10), ce programme n'est pas encore terminé mais j'ai un bug: la fenêtre principale doit appeler 10 fenêtres secondaires (une pour chaque multiplication) mais les fenêtres secondaires ne s'affichent pas;
voici les fichiers du prog:
main.cpp
(pour main.cpp, RAS)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #include <QtGui> #include <QApplication> #include "multi.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); multi w; w.show(); return a.exec(); }
multi.h
le slot serie est appelé quand on lance une nouvelle série de 10 questions, c'est lui qui ouvre les 10 fenêtres à la suite.
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 #ifndef MULTI_H #define MULTI_H #include <QWidget> #include "ui_multi.h" class multi : public QWidget, public Ui::multi { Q_OBJECT public: multi(QWidget *parent = 0); ~multi(); private: int num_question; int score; private slots: void serie(); }; #endif // MULTI_H
multi.cpp
ne pas s'occuper des lignes en commentaires, ce ne sont que des tests.
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
63
64 #include <QtGui> #include <QMessageBox> #include <string> #include "multi.h" #include "une_question/une_question.h" multi::multi(QWidget *parent) : QWidget(parent) { setupUi(this); num_question=1; score=1; } multi::~multi() { } void multi::serie(){ QMessageBox::information(this,"titre","tout va bien",QMessageBox::Yes); /*lbl_res->setText("hello"); lbl_derRes->setVisible(false); lbl_res->setVisible(false); this->adjustSize(); score=0;*/ une_question* la_question_1=new une_question(this,1); la_question_1->show(); la_question_1->activateWindow(); /* for (int i = 0; i < 10; ++i){ bool res_i; une_question* la_question=new une_question(i,0); la_question->show(); while (!(la_question->fini)){ } for (int j=1; j<1000000000;j++){ } res_i=la_question->reussi; if (res_i) score++; //la_question->delete(); }*/ // lbl_res->setVisible(true); // // lbl_res->setText((QString)(score)+ "/10"); // lbl_derRes->setVisible(true); QMessageBox::information(this,"titre","tout va bien",QMessageBox::Yes); }
une_question.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 #ifndef UNE_QUESTION_H #define UNE_QUESTION_H #include <QtGui/QWidget> #include "../ui_une_question.h" class une_question : public QWidget, public Ui::une_question { Q_OBJECT public: une_question(QWidget *parent=0,int numero=0); ~une_question(); bool reussi; bool fini; private slots: void test_juste(); }; #endif // UNE_QUESTION_H
une_question.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
21
22
23
24
25
26
27
28
29
30
31
32
33 #include <stdlib.h> #include "une_question.h" une_question::une_question(QWidget *parent,int numero) : QWidget(parent) { fini=false; setupUi(this); lbl_num_qst->setText(QString(numero)); //int RAND_MAX=10; int le_nb_1=1+(int) (10.0*rand()/(10+1.0)); int le_nb_2=1+(int) (10.0*rand()/(10+1.0)); QString les_nb=(QString)le_nb_1; les_nb+= " * " + le_nb_2; lbl_nombres->setText(les_nb); reussi=true; } une_question::~une_question() { } void une_question::test_juste(){ fini=true; }
lolveley.
Partager