Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2392 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  programmation Qt -> threads - GUI

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

programmation Qt -> threads - GUI

n°588266
warp
Posté le 11-12-2003 à 12:18:57  profilanswer
 

Dans un application,
j'ouvre une fenêtre avec une barre de progression,
pour attendre que quelque chose se termine.
Voici le code :  

Code :
  1. WaitProgress::WaitProgress(QWidget *parent, const char *name) : WaitProgressDlg(parent,name,TRUE) {
  2. QThread::start();
  3. }
  4. WaitProgress::~WaitProgress(){
  5. }
  6. void WaitProgress::run() {
  7. for(;;) {
  8.  mycond.wait();
  9.  ProgressBar->setProgress(0);
  10.  this->show();
  11.  int progress=0;
  12.  for(int i=0; i<WaitSec;i++) {
  13.   myWait(1,0);
  14.   ProgressBar->setProgress((progress+=1));
  15.  }
  16.  this->hide();
  17. }
  18. }
  19. void WaitProgress::Affiche(char *texte,int Sec) {
  20. WaitSec=Sec;
  21. ProgressBar->setTotalSteps(Sec);
  22. TextLabel->setText(texte);
  23. mycond.wakeOne();
  24. }


 
Cette classe fonctionne,
mais parfois la fenêtre ne se ferme pas,
elle reste en permanence à l'écran.
Ca ne fait pas planter le programme,
mais c'est gênant tout de même.
 
Ce que je ne comprend pas,
c'est que j'appelle systématiquement la méthode hide,
sans aucune condition.
Et dans le processus qui appelle cet objet,
je ne le tue pas.
Donc la fenêtre devrait se fermetr à chque fois,
sans exception.
 
Quelqu'un a une idée ?


Message édité par warp le 12-12-2003 à 09:19:16

---------------
Il n'est pas nécéssaire de réussir pour persévérer.
mood
Publicité
Posté le 11-12-2003 à 12:18:57  profilanswer
 

n°588335
Taz
bisounours-codeur
Posté le 11-12-2003 à 14:31:05  profilanswer
 

euh c'est quoi cette boucle infinie ?

n°588654
karlkox
Posté le 11-12-2003 à 21:08:34  profilanswer
 

Exacte, ta fonction est appelée a intervalle régulier, ta boucle infinie n'a rien à faire dans le cas présent.

n°588885
warp
Posté le 12-12-2003 à 09:17:13  profilanswer
 

C'est ainsi que sont gérés les threads,
cf http://doc.trolltech.com/3.0/threads.html
 
Ce n'est pas réellement une boucle infinie,
puisque je m'arrête sur une espèce de mutex.
 
Je crée l'objet, qui se met en attente sur le mutex.
Dès que je le débloque, en appelant la méthode affiche,
il affiche ma barre de progression.
En principe il doit effacer la fenêtre avant de se remettre de nouveau en attente sur le mutex.


---------------
Il n'est pas nécéssaire de réussir pour persévérer.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  programmation Qt -> threads - GUI

 

Sujets relatifs
Débutants en programmation ![Programmation C] Modulo - pb de comprehension du prog
[QT] guide de programmation ?C dur la programmation?
programmation windows -> fenetre et thread[Java] URL de la page des ressources pour faire du GUI
programmation socket sous windowsProgrammation en shell linux sous windows
Programmation GBAHelp, programmation en C du port parallele.
Plus de sujets relatifs à : programmation Qt -> threads - GUI


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR