Bonjour à tous!
Je vais essayer de vous exposer mon problème le plus clairement possible. Je débute avec GTK ainsi qu'avec les Thread et les processus... Bref, j'ai une interface simple qui contient une 4 widget:
- Une barre de progression.
- Un bouton "Lancer".
- Un bouton "Annuler".
- Un bouton Quitter.
Fonctionnement:
Le bouton "Lancer" va comme son nom l'indique, lancer une suite de programme. La succession de ces programmes va me donner la création d'un fichier XML pour l'utiliser avec OpenCV. Donc lorsque l'on appui sur ce bouton, une fonction callback va être appelée et va elle même lancer une fonction (dans un thread: avec g_thread_create)qui va lancer l'ensemble des programme. Pour lancer mes programmes j'utilise des fonctions de l'API WIN 32, notamment Createprocess. Jusque la tout va bien, mon bouton annulé marche bien car j 'ai lancé l'exécution des programmes dans une fonction contenu dans un thread, donc gtk reprend la main régulièrement.
Problème:
A chaque fois que l'exécution d'un programme se termine je fais avancer ma barre de progression avec gtk_progress_bar_set_fraction() . Ma barre de progression avance bien mais l'affichage bug un peu lorsqu'une fênetre de l'un des programme lancé couvre mon interface et que je la déplace (il y a comme une trainée de pixel sur mon interface). J' ai tenté d' utilisé gtk_main_interation() à chaque fois que je fais avancer ma barre de progression mais cela empêche le lancement des programmes.
résumé:
- fonction main()
- fonction callback() quand je clique sur lancer.
- fonction execute_alll () (lancée dans un thread à partir de la fct callback)
- fct° 1 (lance un programme n°1)
- gtk_progress_bar_set_fraction
- fct° 2 (lance un programme n°2)
- fct° n (lance un programme n°n)
Question:
Comment faire pour qu'il n'y ait pas de trainée de pixels sur mon interface?
précision: lorsque je redimension mon interface ou que je clic sur un bouton l'interface redevient normale.
Partager