Retourner aux forums || Retourner au forum Programmation.perl
Programmation.perl : Question sur Perl-Gtk !
Posté par redlums35 () le 04 avril 2005J'ai fait un petit programme en Perl-Gtk. J'ai un bouton "Envoyer" et j'aimerais que le clic sur ce bouton affiche un Label du genre "patienter..." et le cache sur un evenement (pour moi Valeur 1 dans une base SQL).
J'ai donc fait :
----
while($valeur==0){
$label-show();
$valeur= result_interrogation_sql();
}
$label-hide();
Mon problème c'est quand je met cela en place le clic sur le bouton il reste enfoncé et mon label ne s'affiche jamais. La situation se débloque quand $valeur=1 :-(.
Merci pour vos idées.
> Lire le message (5 commentaires, moyenne: 2,2).
yo
Après avoir fait des changements gtk qu'on veut afficher alors qu'on va prendre tout le CPU, il faut demander à gtk d'afficher les changements :
Gtk(2?)->main_iteration while Gtk->events_pending;
Par contre il faut savoir que si ce temps est long et que la fenêtre est cachée puis réapparait, elle ne sera pas redessinée vu que Gtk ne pourra pas réafficher. Si ton truc qui prend tout le CPU dispose d'un callback appelable régulièrement, tu peux mettre la ligne ci-dessus, mais sinon, tu ne peux pas t'en sortir si tu n'utilises pas du multithread ou multiprocessus (entre le thread/proc qui s'occupe de gtk et celui qui fait le calcul intensif).
-
[^]Re: yo
Posté par Obsidian () le 04/04/2005 à 13:24. (lien). Évalué à 2.En effet, bienvenue dans le monde merveilleux de la programmation des threads et des soucis qui en découlent !
Ceci dit, si l'on peut éviter d'utiliser un thread pour tout et n'importe quoi, c'est aussi bien. Le multitâche coopératif est extrêmement bénéfique lorsqu'on l'implémente au sein d'un même programme ...-
[^]Re: yo
Posté par gc (page perso, ) le 05/04/2005 à 07:50. (lien). Évalué à 2.En effet, bienvenue dans le monde merveilleux de la programmation des threads et des soucis qui en découlent !
Bah, ça dépend. En Ruby par exemple, l'implémentation des threads est entièrement dans l'interpréteur, on a donc aucun problème de synchro avec les bibliothèques sous-jacentes.-
[^]Re: yo
Posté par Obsidian () le 08/04/2005 à 18:01. (lien). Évalué à 2.Je n'ai pas fait de Ruby, donc je ne m'étendrai pas, mais si les threads sont de vrais threads et sont pris en charge par l'interpréteur, alors le « problème » existe toujours : Il est simplement masqué.
Il est quand même bon de connaître tous les tenants et aboutissants de la chose et d'apprendre à écrire des programmes performants parce que bien conçus, avant de laisser un langage évolué faire tout le travail à la place du (prétendu) programmeur ...
-
-
-
[^]POE
Posté par Moun's (page perso, ) le 05/04/2005 à 18:21. (lien). Évalué à 2.POE est un framework en perl pur pour faire du multitache cooperatif
il a entre autre des outils pour gerer du TK et du GTK.
ca peut t'aider pour ton dev.
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.perl



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.