IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

la Mémorisation GTK


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 14
    Par défaut la Mémorisation GTK
    Bonjour
    j'ai un programme GTK ou il faut que j'appui sur un bouton image (un pion) puis que j'appui sur un autre bouton jouer carte pour que mon pion avance; Mais je ne sais pas comment faire pour mémoriser le pion séléctionné et qu ainsi mon pion selectionné avance
    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 172
    Par défaut
    Alors pour mémoriser tes widgets, t'as 3 solutions :

    - Les mettre en variable globales.
    La solution la plus facile, mais aussi la moins rigoureuse.
    Si t'as un très gros programme, ça peut vite devenir bordélique.

    - La structure. (Ou la liste chainée)
    Tu mets toutes tes variables dans une structure ou une liste que tu passes en argument à toutes tes fonctions.
    C'est une solution beaucoup plus rigoureuse que la première, bien qu'elle ait ses limites elle aussi.

    - Les noms.
    Une méthode que j'ai découverte récemment en regardant la doc que GtkWidget.
    Elle s'utilise en complément d'une des 2 premières.
    Nomme tes Widgets grâce à la fonction gtk_widget_set_name et retrouve-les grâce à la fonction gtk_widget_get_name.
    C'est de loin la solution la plus propre, mais aussi la plus coûteuse en temps de calcul (ce qui n'est vraiment important que si tu gères un très très grand nombre de widgets), car retrouver une chaine de caractères est évidement plus long que d'aller chercher l'indirection d'un pointeur.


    Les noms sont surtout utiles dans l'identification et donc à la récupération de Widgets.
    Imaginons :
    Tu as ta structure s et 2 widgets* v et w.
    Tu crées le widgets s->v qui va pointer sur l'adresse x.
    puis tu fermes la fenêtre contenant v;
    Ensuite tu crées le widgets s->w qui va pointer sur la première zone mémoire disponible, à l'adresse x (qui aura été libérée après la destruction de v).
    puis tu fais une fonction dans laquelle tu veux savoir, parmi tous les widgets de ta structure, lequel est passé en argument.
    sauf qu'à ce moment là, s->w et s->v pointeront tous les 2 vers x (car detruire un Widget ne met pas les pointeur à NULL !), et bonjour les bugs...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 14
    Par défaut
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compilation GTK+ DevC++
    Par GLDavid dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 30/06/2004, 23h04
  2. [web] Installation de gtk
    Par toto_titi dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 30/06/2003, 11h24
  3. [GTK]instal devPack avec dev c++
    Par FreshVic dans le forum Autres éditeurs
    Réponses: 8
    Dernier message: 15/04/2003, 16h48
  4. [Kylix] Kylix GTK et QT
    Par mailstef dans le forum EDI
    Réponses: 2
    Dernier message: 19/11/2002, 21h53
  5. [GTK]PB Librairie GTK+ sous dev-c++
    Par wozzy dans le forum Dev-C++
    Réponses: 15
    Dernier message: 05/11/2002, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo