Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Réservez vos DVD et clé USB Ubuntu-fr (premières livraisons mi-mai)

Si vous avez des soucis pour rester connecté, déconnectez vous et reconnectez vous depuis ce lien en cochant le case
Me connecter automatiquement lors de mes prochaines visites.

M.A.J. en cours du forum possibilité de bug, nous faisons le maximum pour les résoudre au plus vite

#1 Le 25/12/2005, à 12:03

jks

GTK, C, GladeXML: widgets accessibles dans toutes mes fonctions?

Bonjour,

j'essaie d'apprendre le GTK/C et de comprendre le fonctionnement de Glade XML.
Voilà je bloque sur ceci :

1) J'ai créé une interface GTK avec Glade (j'ai mis plusieurs labels : label1, label2, label3, label4, label5, etc) puis généré le xml.

2) Dans ma fonction main
je fais appel à l'interface XML (en fait tout a été déjà écrit par Anjuta) :

int main (int argc, char *argv[])
{
...
GtkWidget *window1;
GladeXML *xml;
glade_xml_signal_autoconnect (xml);
etc..
label1 = glade_xml_get_widget (xml, "label1");
...
}

3) J'ai d'autres fontions autre que main :

static gboolean mafonction1 (arg1, arg2, arg3) {
...
gtk_label_set_label(label1, montexte);
gtk_label_set_label(label2, montexte2);
gtk_label_set_label(label3, montexte3);
gtk_label_set_label(label4, montexte4);
...
}

static gboolean mafonction2 (arg1, arg2, arg3) {
...
idem
...
}

static gboolean mafonction3 (arg1, arg2, arg3) {
...
idem
...
}

Problème:
Quand mafonction1 est appelée par exemple, cela ne fonctionne pas puisque les labels n'existent que dans main.

D'où questions :
Comment rendre accessible tous les labels dans toutes mes fonctions ?
Suis-je obligé dans chaque fonction de "re-déclarer" GladeXML *xml, glade_xml_signal_autoconnect (xml), etc ? Cela allourdi-t-il le prgm (ressources, mémoires, etc) en sachant que mafonction1 est appelée toutes les 1ms ?
Y aurait-il un moyen de déclarer une fois pour toute de manière globale mes labels ?

Merci.
(merci aussi d'avoir tout lu ! smile )
Et joyeux Noël !

Dernière modification par jks (Le 25/12/2005, à 12:16)

Hors ligne

#2 Le 25/12/2005, à 12:49

cassidy

Re : GTK, C, GladeXML: widgets accessibles dans toutes mes fonctions?

Soit tu tapes ton Glade handler en global et tu refais tes get_widget dans chaque fonction selon tes besoins (pas besoin de refaire le connect, faut juste le faire une fois au début).
Incovénient : si tu changes le nom d'un widget tu dois changer à plusieurs endroits dans le code.

Soit tu met tous les widgets que tu vas manipuler dans ton code en global et tu fais tous tes get_widget au début.
Inconvénient : tu "gaspilles" plus de mémoire vu que tu tiens en permanence un pointeur sur chaque widget (mais ça tu ne fais qu'une fois les get_widget donc ne sera surement un peu plus rapide).

Dernière modification par cassidy (Le 25/12/2005, à 12:49)


"I came for the quality. I stayed for the freedom." - Sean Neakums

Hors ligne

#3 Le 25/12/2005, à 15:09

jks

Re : GTK, C, GladeXML: widgets accessibles dans toutes mes fonctions?

Ok je vais tester ça...
Merci !

Hors ligne