[mandriva 2008 spring,eclipse] Une fenêtre ne s'affiche pas
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:
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:
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:
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:
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:
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.