[GTK+]Ajouter un boutton grace a une fonction

Fermé
lolotomik Messages postés 1 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 12 mai 2009 - 12 mai 2009 à 16:01
Bonsoir,

Je débute en GTK+, et je butte sur un point j'imagine fort simpliste, mais j'ai tout de même besoin de votre aide.

Ma question est simple, pourquoi mon label ne s'afiche pas dans ma fenêtre lorsque je clique sur le Menu OUVRIR ?

[CODE]#include <stdlib.h>
#include <gtk/gtk.h>
#include "prototypes.h"
#include "callback.h"

int main (int argc, char **argv)
{
// DECLARATIONS DE VARIABLES
// GtkWidgets globaux :
GtkWidget *fenetre_principale = NULL,*vBox_princ = NULL;
GSList *pack = NULL;
// Widgets de la barre de menu :
GtkWidget *menuBar = NULL,*menu = NULL,*MenuItem = NULL;

gtk_init(&argc,&argv);

// Création de la fenetre principale
fenetre_principale = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(fenetre_principale),GTK_WIN_POS_CENTER);
gtk_window_set_title(GTK_WINDOW(fenetre_principale),"Projet NUEVA");
gtk_window_set_default_size(GTK_WINDOW(fenetre_principale),700,400);
g_signal_connect(G_OBJECT(fenetre_principale),"delete_event",G_CALLBACK(Quitter_event),(GtkWidget *)fenetre_principale);

// Création de la vBox_princ
vBox_princ = gtk_vbox_new(FALSE,0);
gtk_container_add(GTK_CONTAINER(fenetre_principale),vBox_princ);

pack = g_slist_append (pack,(GtkWidget *)fenetre_principale);
pack = g_slist_append (pack,(GtkWidget *)vBox_princ);

// Création de la barre de menu
menuBar = gtk_menu_bar_new();
// MENU FICHIER
menu = gtk_menu_new();
//Bouton Ouvrir
MenuItem = gtk_menu_item_new_with_mnemonic("_Ouvrir");
gtk_menu_shell_append(GTK_MENU_SHELL(menu),MenuItem);
g_signal_connect(G_OBJECT(MenuItem),"activate",G_CALLBACK(Ouvrir),(GSList *)pack);
//Bouton Quitter
MenuItem = gtk_menu_item_new_with_mnemonic("_Quitter");
gtk_menu_shell_append(GTK_MENU_SHELL(menu),MenuItem);
g_signal_connect(G_OBJECT(MenuItem),"activate",G_CALLBACK(Quitter_quit),(GSList *)pack);
// Création du GTKItem Fichier
MenuItem = gtk_menu_item_new_with_mnemonic("_Fichier");
gtk_menu_item_set_submenu(GTK_MENU_ITEM(MenuItem),menu);
gtk_menu_shell_append(GTK_MENU_SHELL(menuBar),MenuItem);

// MENU ?
menu = gtk_menu_new();
//Bouton En savoir Plus
MenuItem = gtk_menu_item_new_with_label("En savoir plus ...");
gtk_menu_shell_append(GTK_MENU_SHELL(menu),MenuItem);
g_signal_connect(G_OBJECT(MenuItem),"activate",G_CALLBACK(Infos),(GSList *)pack);
// Création du GTKItem Fichier
MenuItem = gtk_menu_item_new_with_label("?");
gtk_menu_item_set_submenu(GTK_MENU_ITEM(MenuItem),menu);
gtk_menu_shell_append(GTK_MENU_SHELL(menuBar),MenuItem);

gtk_box_pack_start(GTK_BOX(vBox_princ),menuBar,FALSE,FALSE,0);

// Affichage de la fenetre et de ses composants
gtk_widget_show_all(fenetre_principale);

gtk_main ();

return EXIT_SUCCESS;
}

void Ouvrir (GtkWidget *widget,GSList *pack) {

GtkWidget *label=NULL,*box=NULL;
GSList *temp_list=NULL;

temp_list = g_slist_nth(pack, 1);
box = GTK_WIDGET(temp_list->data);

label = gtk_label_new("ok");
gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 0);
gtk_widget_show(box);

}/CODE

Merci à vous ;)