Aller au contenu

interface en GTK


Mephisto

Messages recommandés

Bonjour

J'ai un programme qui tourne en continue et fait du calcul, et j'aimerais avoir un affichage en temps reel des resultats sur une interface GTK

mais comme j'ai commence le GTK hier soir entre deux bieres, pour coller du texte, je connais que les labels, et, je ne suis pas certain, mais il me semble que c'est pas vraiment dynamique a la base :\

des petites idees ??

Merci!

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Alors je ne m'y connais ni en C/C++ ni en GTK...

Cependant, les conseil que je vais te donner devraient marcher quand même, puisqu'ils s'agit de principes indépendants du langage de programmation utilisé.

Ce que tu veux faire c'est une GUI qui rende compte des calculs et des résultats, donc pour cela, tu vas créer une intergace graphique (appelons-la "vue") d'un certain travail (appelons-le "modèle"). Ce modèle ne se charge que du calcul proprement dit, et non d'un quelconque affichage.

Ce modèle évolue dans le temps, et il faut donc que la vue en soit informée pour se modifier en conséquence (montrer les nouvelles valeurs et/ou l'avancement des calculs).

Pour cela, ta vue va "écouter" ton modèle, c'est à dire que ta vue va se déclarer un écouteur (en anglais listener) de ton modèle.

Donc tu vas devoir avoir recours à un Design Pattern (ou Motif de conception) appelé MVC (pour Modèle-Vue-Contrôleur).

Techniquement, cela se passe ainsi:

  1. La vue s'enregistre auprès du modèle
  2. Le modèle se modifie, suite à un calcul effectué par exemple
  3. Le modèle avertit tous ceux qui l'écoutent que son état a changé
  4. La vue en est avertie: elle interroge le modèle pour connaître ses nouvelles valeurs
  5. La vue se re-dessine en se basant sur les nouvelles valeurs récupérées

Donc en fait, tu peux utiliser des labels, et faire en sorte que la vue change la valeur de ce label à partir des nouvelles valeurs du modèle.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...