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

  FORUM HardWare.fr
  Programmation
  C++

  [Qt] programmation visuelle asynchrone

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Qt] programmation visuelle asynchrone

n°314667
warp
Posté le 21-02-2003 à 08:30:51  profilanswer
 

Je ne sais pas si le titre est clair,
je vais préciser.
 
J'ai écrit des classes en C++,
celles-ci font appel au port série,
et parfois je dois attendre quelques secondes avant d'avoir  
la réponse venant du port série.
 
On va dire pour simplifier, que dans une classe j'ai ceci

Code :
  1. writeCom(...);
  2. sleep(x);
  3. readCom(...);


 
J'ai commencé une interface graphique qui, lorsque j'appuie sur un bouton, appelle une méthode d'écriture/lecture sur le port série.
Lorsque j'ai la réponse de cette méthode, j'écris le résultat sur l'interface graphique.
 
Mais problème : pendant les x secondes de la méthode, l'interface graphique est gelée.
Si, par exemple, je veux faire bouger une barre de progression pendant les x secondes, je ne le peux donc pas.
Est-il possible de faire cela autrement qu'avec des threads ? ....ou autre ?


---------------
Il n'est pas nécéssaire de réussir pour persévérer.
mood
Publicité
Posté le 21-02-2003 à 08:30:51  profilanswer
 

n°314675
bilbobman
Posté le 21-02-2003 à 08:39:05  profilanswer
 

tu peut te servir de fork mais bon c la galere pour communiquer avec la gui a partir de l'autre thread enfin si tu trouve comment faire ca facilemment je suis preneur

n°314679
kadreg
profil: Utilisateur
Posté le 21-02-2003 à 08:47:17  profilanswer
 

warp a écrit :


Est-il possible de faire cela autrement qu'avec des threads ? ....ou autre ?


 
Les threads sont LA solution à ce type de problème. Je te conseille la lecture de cette page :  
 
http://doc.trolltech.com/3.0/threads.html
 
Qui contient un exemple de traitement par un thread avec une IHM qui continue de fonctionner correctement. N'oublie pas les                 qApp->lock(); et qApp->unlock();.


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°314696
warp
Posté le 21-02-2003 à 09:27:43  profilanswer
 

Effectivement, c'est un bon exemple,
reste à l'appliquer à mon programme.
 
 :hello:


---------------
Il n'est pas nécéssaire de réussir pour persévérer.
n°315204
warp
Posté le 21-02-2003 à 19:11:50  profilanswer
 

Ben voilà, ça fonctione.
 
....et c'est facile en plus. :)  
 
Mais maintenant j'ai un autre problème.
L'interface graphique n'est pas mise à jour au fur et à mesure.
 
Qu'à celà ne tienne, il suffit d'appeler la méthode repaint().
Eh bgien non.
ça ne fonctionne pas.
Il faut que je bouge la souris pour que l'interface soit renouvelée.
Si je ne fais rien du tout, rien ne se passe,
ou du moins pas tout le temps.
Dès que je me met à bouger la souris, là tout fonctionne.
 
Pourtant n'est-ce pas le but de la méthode repaint()  ??
J'ai aussi essayé avec update(),
mais pareil, ça ne fonctionne pas.


---------------
Il n'est pas nécéssaire de réussir pour persévérer.
n°315213
gloop
Posté le 21-02-2003 à 19:24:50  profilanswer
 

de toute facon, si repaint () ne fait rien, update () n'en fera pas plus, puisque update est juste une demande à Qt de mettre un paintEvent pour ton composant dans sa liste d'evenements.
Sans plus de code, ca sera pas facile de t'aider, mais tu peux essayer un repaint (true) pour le forcer à effacer puis réactualiser.


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

  [Qt] programmation visuelle asynchrone

 

Sujets relatifs
Programmation du son sous delphi!programmation de demos sur anciennes machines
j'y connais rien en programmationBesoin d'aide en Programmation Perl
Une question de newbie en programmation...[JAVA] programmation d'un bot de moteur de recherche
programmation du // pour un afficheur LCD en CChoisir un language de programmation : Lequel ? (vos avis)
Programmation sous Excelcherche bon site sur la programmation mac en francais
Plus de sujets relatifs à : [Qt] programmation visuelle asynchrone


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