Bonjour à tous,

J'ai réaliser une fenetre de chargement basique pour mon programme. Cette fenetre contient juste un label contenant le text "Chargement...". Elle doit s'ouvrir avant le traitement d'une certaine durée et doit se refermé juste après. Cette fonction qui réalise un traitement sur des données est executée lors d'un click sur bouton. (Signal/Slot).

Mon problème est que cette fenêtre(QWidget) s'ouvre toujours après le traitement sur les données alors que je l'ai déclaré avant ce traitement. Comment se fait t-il?

Voilà un bout de code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
void MainWindow :: traiterDonnees(){
 
      FenetreChargement *fChargement=new FenetreChargement(QString("Chargment..."),NULL); //Creation de la fenetre
      fChargement->show(); //Affichage de la fenetre
 
      while(/*Ce qu'on veut*/){
      //On fait des traitements sur données pendant 1 min par exemple
      }
 
      //fChargement->close(); //On ferme la fenetre
}
et mon constructeur de fenetre est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
FenetreChargement ::  FenetreChargement(QString messageInformation,QWidget *parent) :QWidget(parent) {
      this->setFixedSize(200,20);
      this->setWindowFlags(Qt::Tool);
 
      //On gere le message que l'on va afficher
      lMessageInfo=new QLabel(this);
      lMessageInfo->setText(messageInformation);
}
Pourquoi la fenêtre s'affiche toujours à la fin du traitement des données et non pas au début?
Comment puis-je palier à ce problème?

Merci à tous.