Boucle lente dans une fonction
Bonjour,
J'ai fait une fenêtre avec un bouton et un label. lorsque l'on clic sur le bouton la fonction callback suivante est lancé:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| void fct_Analyse(GtkToggleButton *toggle_button)
{
//la valeur du label de la fenêtre principale devient = a Cnt_Total
Refresh();
while(gtk_toggle_button_get_active(toggle_button))
{
//variable global
Cnt_Total++;
gtk_main_iteration ();
}
} |
lorsque je clic sur le bouton et que j'attend avant de re cliquer dessus, mon label est toujours incrémenté de 5??? alors qu'il devrait être incrémenté en fonction de l'attente. par contre si je modifie la fonction comme suit:
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
| void fct_Analyse(GtkToggleButton *toggle_button)
{
/* Declaration du widget */
GtkWidget *test;
GtkWidget* pLabel;
char buffer [50];
/* Creation de la fenetre */
test = gtk_window_new(GTK_WINDOW_TOPLEVEL);
/* Connexion du signal "destroy" */
/* Creation du label */
sprintf (buffer, "%d", Cnt_Total);
pLabel=gtk_label_new(buffer);
/* On ajoute le label a l'interieur de la fenetre */
gtk_container_add(GTK_CONTAINER(test), pLabel);
/* Affichage de la fenetre et de tout ce qu'il contient */
gtk_widget_show_all(test);
Refresh();
while(gtk_toggle_button_get_active(toggle_button))
{
Cnt_Total++;
sprintf (buffer, "%d", Cnt_Total);
gtk_label_set_label(pLabel,buffer);
gtk_main_iteration ();
}
} |
La on voit la valeur incrémenter à toute vitesse. quelqu'un a une idée de ce qui peu causer le problème?
merci d'avance