Callback menu gtk

iex Messages postés 6 Date d'inscription mercredi 13 septembre 2006 Statut Membre Dernière intervention 20 octobre 2006 - 13 sept. 2006 à 15:38
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 - 14 sept. 2006 à 21:36
Bonjour ,


Je suis en train de faire un petit programme en C avec la lib gtk.

et j ai un probleme avec mon menu,

quand je clique sur un element du menu qui pointe vers une boite de dialogue ca  marche,

mais quand je clique  par exemple sur le bouton 'Nouveau' ca !@#$%^

Glib-GObject-WARNING invalid cast from 'GtkImageMenuItem' to 'GtkBox'

Gtk-CRITICAL file gtkbox.c <gtk_box_pack_start>: assertion 'GTK_IS_BOX ' failed

/!\ j'ai creer le menu dans une VBox

ce que je veut c est afficher un bouton lorsque que je clique dans le menu sur "Nouveau"
<hr size="2" width="100%" />MenuItem = gtk_image_menu_item_new_from_stock(GTK_STOCK_OPEN, NULL);
g_signal-connect(G_OBJECT(MenuItem),
"activate", G_CALLBACK(OnNew),
                                                                                                        
(GtkWidget*) pWindow);

gtk_menu_shell_append(GTK_MENU_SHELL(pMenu), pMenuItem);


void      OnNew(Gtk Widget *VBox)

{

    GtkWidget *btn;


    btn = ... with_label("button");

    gtk_box_pack_start(GTK_BOX(VBox), btn, FALSE, FALSE, 0);

}
<hr size="2" width="100%" />Merci

5 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
13 sept. 2006 à 17:21
Bas dans ton signal, tu balances un objet GtkWindow ("pWindow"). Or toi
tu veux l'utiliser comme une box, mais une "window" n'est pas une "box".
0
iex Messages postés 6 Date d'inscription mercredi 13 septembre 2006 Statut Membre Dernière intervention 20 octobre 2006
14 sept. 2006 à 09:15
j ai remplacer pWindow par VBox mais ca ne marche toujours pas !!


g_signal-connect(G_OBJECT(MenuItem),"activate",
G_CALLBACK(OnNew),                       
(GtkWidget*) VBox);
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
14 sept. 2006 à 13:21
Pourquoi ya un tiret à la place d'un underscore ?

Mais sinon post un peu plus de code car la ya pas grand chose pour juger.


A la place de la macro GTK_BOX essayes GTK_VBOX. Car je pense pas qu'on
est le droit d'utiliser la structure BOX, mais doit falloir utiliser
une de ses dérivées.
0
iex Messages postés 6 Date d'inscription mercredi 13 septembre 2006 Statut Membre Dernière intervention 20 octobre 2006
14 sept. 2006 à 14:22
no le tiret c un underscore (faute de frappe)

je ne peut pas mettre plus de code je ne l ai pas sur ce pc.


mais je peut dire aue j ai une vbox pr mon menu et c tout !

peut etre faut il inserer une autre vbox dans la vbox deja existante ??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
14 sept. 2006 à 21:36
Non tu dois mal déclarer ta vbox, mais faut que tu postes plus de code, car la je peux pas t'aider.


Et puis le Invalid cast from 'GtkImageMenuItem' to 'GtkBox' il te met l'erreur ou ? Utilise le debugger pour savoir précisément.
0
Rejoignez-nous