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
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();
}
(pour main.cpp, RAS)

multi.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
 
 
#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
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.

multi.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
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);
 
}
ne pas s'occuper des lignes en commentaires, ce ne sont que des tests.

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.