J'aimerai savoir comment mettre en pause la fonction g_timeout_add
Merci
J'aimerai savoir comment mettre en pause la fonction g_timeout_add
Merci
ça veut dire, j'appuie sur un bouton "stop" la fonction est stopper ou "tué", j'appuie sur le bouton "start" je créé une nouvelle fonction g_timeout_add
Un des premiers résultats quand tu fais une recherche sur g_timeout_add est http://www.developpez.net/forums/sho...d.php?t=553523
moi j'ai pas trouvé ça quand j'ai cherché ! mais merci !
Pour compléter la réponse de Teuf il ne faut pas oublier que le callback affecté avec un g_timeout_add(); retourne TRUE tant qu'il vit. Donc il est tout à fait possible à l'interieur de cette fonction de faire un test sur un widget ou une variable externe et selon le résultat trouvé renvoyé FALSE ce qui provoquera automatiquement le "kill" de cette fonction. Ainsi nul besoin de sauvegarder le int renvoyé par g_timeout_add(); pour l'utiliser avec un g_source_remove();![]()
Utilisation de Glade avec Gtk+
Code::Blocks et Gtk+ sous Windows
Programmation orientée objet avec Gtk+ v3
- N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk
Personnellement, je recommande chaudement de gérer proprement l'identifiant retourné par g_timeout_add() pour supprimer l'instance de la fonction de la queue idle quand elle n'est plus nécessaire. D'autant plus si une même fonction de traitement est mise en queue idle avec des données différentes (champ data de g_timeout_add() différent mais même fonction GSourceFunc) : l'utilisation d'un flag global s'appliquerait alors à toutes les instances de la fonction ou alors le développeur en viendrait à gérer autant d'association [ flag, fonction ] que d'instances de la fonction - en gros, il réinventerait l'identifiant retourné par g_timeout_add(). Bref, un identifiant est retourné pour assurer une association unique [ traitement, instance de la fonction ] et il faut l'utiliser plutôt que de mettre en place des hacks rocambolesques avec des variables globales qui ajoutent une complexité inutile au code.
Partager