begin process at 2012 02 13 13:33:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

GTK+

 > 

libglade : Connection des signaux


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

libglade : Connection des signaux

mardi 10 mai 2005 à 23:43:15 | libglade : Connection des signaux

guifr

Bonsoir à tous,

Je me suis plongé depuis peu dans les délices de la libglade et je bloque sur un point crucial : impossible d'utilisez les signaux ! En créant un projet tout bête avec juste un bouton, si par exemple au signal "clicked" je lui demande d'accomplir un traitement tel que gtk_main_quit, il me le fera sans problèmes, mais dès lors que je lui assigne une fonction de mon cru, il ne l'executera pas.
Et pourtant je ne suis vraiment pas loin de l'exemple "test-libglade.c" de la docu officielle. J'ai bien mis le
glade_xml_signal_autoconnect(), bien vérifié que le nom de la fonction appellée dans le fichier glade corresponde bien à celui du .c... bref je sèche.
Alors je tente de tourner le problème sous tous les angles... et je ne parviens à m'extriquer de cette impasse.
Et je ne sais plus trop où chercher; que vérifier... donc si vous avez une idée elle est la bienvenue !

mercredi 18 mai 2005 à 19:34:17 | Re : libglade : Connection des signaux

guifr

Réponse acceptée !
Oh joie ! j'ai fini par trouver !

En fait le problème est propre à la compilation sous win32; pour ceux que ça intéresse, il suffit de faire précéder ses fonctions de :
__declspec(dllexport)

Bon forcément ça fait un peu brouillon, et surtout j'ai peur que ça coince lors d'une compilation sous un autre environement que win32 (ce qui serait grandment dommage pour la très grande portabilité de GTK et de la libglade), donc je propose : on dit merci le précompilo et on se fait un joli header avec dedans des trucs qui ressemblent à ça :

#ifdef G_OS_WIN32
#define GTK_CB __declspec(dllexport)
#else
#define GTK_CB
#endif

Et voilà, pour GTK_CB pour GTK call back bien sûr, mais libre à vous de choisir autre chose ! Il suffira alors de faire précéder toutes les fonctions à connecter par GTK_CB.
Je n'ai pas encore eu la joie de compiler mon esquisse de projet sous Linux, si quelqu'un a l'occasion de vérifier si ce morecau de code ne coince pas !

jeudi 19 mai 2005 à 19:29:22 | Re : libglade : Connection des signaux

guifr

Réponse acceptée !
Tant que j'y pense :

Pour ceux que ça amuserait de compiler en c++ (et j'en fait parti), ce n'est pas une surprise, GTK préfère le C... et libglade n'échape pas à la règle !!! pas envie de prendre le bindings libglademm (et je vous comprend) ? Bin là aussi ça va poser problème car la libglade veut que les fonctions soient en C, mais pas de panique ! si vous les prototipez mettez juste :
#ifdef __cplusplus
extern "C" {
#endif
GTK_CB void on_button_clicked(GtkWidget *widget, gpointer user_data);
/*vos autres prototypes ici*/
#ifdef __cplusplus
}
#endif
où encerclez le code de votre interface du même extern "C" { ... }
Comme ça vous n'aurez (presque) plus de raisons de vous priver de la libglade !


Cette discussion est classée dans : connection, exemple, signaux, signal, libglade


Répondre à ce message

Sujets en rapport avec ce message

impression [ par Live2Die ] Je suis programmeur pascal et j'ai voulu me mettre au c++J'ai presque termener mon premier programme, mais un probleme persiste... je ne peux imprimer Hors programmation... [ par NitRic ] Seulement une petite suggestion: Il serait bien d'indiquer dans les message(demande d'aide) quel compilateur on utilise... Pourquoi je dit ca:Allez vo dll pour asp avec connection odbc [ par denis ] salut!voila mon probleme :j'ai cree une dll dans laquelle il y a une ouverture de base access au moyen d'une classe qui dérive de la classe CRecordset Exemple de EnumPrinters (qui fonctionne) en C++ [ par nico ] Je voudrais que mon programme puisse détecter l'imprimante par défaut utilisée par mon PC. Pour ce faire j'ai trouvé la fonction "EnumPrinters". Le pr Sortie formatée avec printf: précision [ par GoldenEye ] J'ai besoin d'afficher avec printf un double avec une précision dynamique.Par exemple, l'user rentre une précision epsilon( 0.01 par ex ) et je veux l Exemple... [ par ELECTRORESiSTiK ] Salut, je cherche un exemple en Visual C++ pour mettre la taille d'un text ce trouvant dans un edit1 dans un edit2.Merci d'avance...Bonne Journée SHBrowseForFolder [ par mindark ] Bonjour, qqn pourrait il me donner un exemple pour l'utilisation de SHBrowseForFolder..J'ai regarde l'help sur les API, mais j'y comprends pas grand c Conversion de chaine en entier [ par JMGR ] Comment peut - on convertir une chaine qui contient par exemple "25" en entier ?Exemple :char texte[256]="25";int nombre;nombre = texte; //Erreur...< please..J'aimerai avoir un exemple de puissance 4 avec IA [ par scorpiwolf ] Si quelqu'un a un puissance 4 avec intelligence artificielle donc mode 1 joueur, j'aimerai l'avoir come exemple, je vous remercie... signal clavier [ par draggoon ] Je cherche comment analyser en permanence les entree clavier. en fait je veux faire une fonction qui quitte l'application et sauvegarde des que j'appu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,607 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales