Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1870 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C][GTK] Problème de signal_connect

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C][GTK] Problème de signal_connect

n°1875605
Raziel
Noel sfini
Posté le 20-04-2009 à 21:45:20  profilanswer
 

Salut,  
 
Je travaille sur un petit programme en C en utilisant Gtk pour l'interface graphique.
J'ai un petit problème avec un textView, pour en modifier le contenu plus exactement...
L'initialisation se passe sans problème (wg est une structure contenant les pointeurs vers les widgets et la fenêtre principale):

Code :
  1. ...
  2. wg.chanData = gtk_text_view_new();
  3. wg.chanBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(wg.chanData));
  4. gtk_text_buffer_set_text(wg.chanBuffer, "Hello World\n", -1);
  5. ...


En dessous du textView j'ai une entry, et a l'activation je vérifie son contenu et je voudrais mettre a jour le textView:

Code :
  1. /* Fonction de gestion des commandes */
  2. void            handle_slashcmd(t_widgets *wg, char *buffer)
  3. {
  4.   t_fcts        fcts[] = SLASH_CMDS;
  5.   int           i;
  6.   i = 0;
  7.   while (fcts[i].cmd != NULL)
  8.     {
  9.       /* verifications et return si la commande existe */
  10.     }
  11.   /* On atterit ici si la commande n'existe pas */
  12.   gtk_text_buffer_insert_at_cursor(wg->chanBuffer, "Massive failure.\n", 17);
  13. }
  14. /* Fonction appelee par l'activate de l'entry */
  15. void            exec_cmd(GtkWidget *widget, GdkEvent *event, t_widgets *wg)
  16. {
  17.   const gchar   *buffer;
  18.   buffer = gtk_entry_get_text(GTK_ENTRY(widget));
  19.   if (buffer[0] == '/')
  20.     handle_slashcmd(wg, (char*)((int)buffer + 1));
  21.   else
  22.     send_msg(buffer);
  23.   gtk_entry_set_text(GTK_ENTRY(widget), "" );
  24. }


 
Le problème est que je me tape un segfault lors du "gtk_text_buffer_insert_at_cursor" dans handle_slashcmd() (ligne 13) ...
J'ai également essayé avec un set_text a la place, meme problème... De même en essayant de récuperer a nouveau le buffer avec text_view_get_buffer, etc...
Chose bizarre: si j'essaye d'ajouter directement du texte lors de l'initialisation du widget (apres le set_text du premier bout de code), aucun problème quelle que soit la methode utilisée...
 
Quelqu'un aurait-il une idée?
 
Merci :hello:


Message édité par Raziel le 21-04-2009 à 14:33:45
mood
Publicité
Posté le 20-04-2009 à 21:45:20  profilanswer
 

n°1875631
Raziel
Noel sfini
Posté le 20-04-2009 à 23:00:18  profilanswer
 

Après quelques tests il y a visiblement un ptit problème au niveau de l'envoi de l'adresse de la structure... J'ai changé le connect vu que gtk_signal_connect est déprécié.

Code :
  1. void            exec_cmd(GtkWidget *widget, t_widgets *wg)
  2. {
  3.    ...
  4. }
  5. ...
  6. g_signal_connect(G_OBJECT(wg.cmdEntry), "activate", G_CALLBACK(exec_cmd), &wg);


 
Seulement après debug l'adresse de wg n'est pas du tout la même dans la fonction qui initialise le connect et dans exec_cmd... Je ne vois pas comment ca se fait :/

n°1875840
Raziel
Noel sfini
Posté le 21-04-2009 à 14:14:03  profilanswer
 

up!

n°2149942
azubal
Posté le 19-07-2012 à 23:21:23  profilanswer
 

up. J'ai le même problème :/

n°2149966
Raziel
Noel sfini
Posté le 20-07-2012 à 10:04:15  profilanswer
 

Passe à Qt :o

n°2149992
Terminapor
I'll see you rise.
Posté le 20-07-2012 à 11:39:06  profilanswer
 

Voilà :o


---------------
Perhaps you don't deserve to breathe
n°2150328
azubal
Posté le 23-07-2012 à 08:51:36  profilanswer
 

LoL :D
Je ne peux pas, j'utilise gstreamer qui utilise la glib.
Bon tfoisson j'ai trouvé mon problème : Je compilais avec une version de la lib et j'en utilisais une autre au runtime... honte sur moi :o


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C][GTK] Problème de signal_connect

 

Sujets relatifs
Probleme de redirection avec OVH et classeequivalent de #define en C#
[C++] Utiliser le pointeur this dans le constructeurproblème boucle while
Problème de (gros...) debutantProblème de gestion de stock sous excel 2007
[Problème] Instanciation de Servlet au démarrage de TomcatProbleme FMod, enchainement sans coupure
Problème avec les variables globales, bug PHP !?Interfacer Python et C++
Plus de sujets relatifs à : [C][GTK] Problème de signal_connect


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR