lolotomik | 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);
- }
|
Merci à vous |