mercredi 22 juin 2016

Menu doesn't display while creating it in GTK+ 3 C

Screenshot of the output

i am new with gtk+. while learning to create menus in gtk+ i simply copy paste the following code and when i run it....i don't know what is the problem but only it shows window. it does not show any menus or menu bar... help me if anyone has been through this problem...

    #include <gtk/gtk.h>
    GdkPixbuf *create_pixbuf(const gchar * filename)
    {
    GdkPixbuf *pixbuf;
    GError *error = NULL;
    pixbuf = gdk_pixbuf_new_from_file(filename, &error);
    if (!pixbuf) {
    fprintf(stderr, "%sn", error->message);
    g_error_free(error);
    }
    return pixbuf;
    }

    int main(int argc, char *argv[])
    {

    GtkWidget *window;
    GtkWidget *icon;
    GtkWidget *vbox;

    GtkWidget *menubar;
    GtkWidget *fileMenu;
    GtkWidget *fileMi;
    GtkWidget *quitMi;
    GtkWidget *text_view;
    GtkWidget *buffer;

    gtk_init(&argc, &argv);

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window), "Write Pad");
    gtk_window_set_default_size(GTK_WINDOW(window), 500, 400);
    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);

    icon = create_pixbuf("Web.png");
    gtk_window_set_icon(GTK_WINDOW(window), icon);

    vbox = gtk_vbox_new(FALSE, 0);
    gtk_container_add(GTK_CONTAINER(window), vbox);


    text_view = gtk_text_view_new ();
    gtk_box_pack_start (GTK_BOX (vbox), text_view, 1, 1, 0);

    buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view));



    menubar = gtk_menu_bar_new();
    fileMenu = gtk_menu_new();

    fileMi = gtk_menu_item_new_with_label("File");
    quitMi = gtk_menu_item_new_with_label("Quit");

    gtk_menu_item_set_submenu(GTK_MENU_ITEM(fileMi), fileMenu);
    gtk_menu_shell_append(GTK_MENU_SHELL(fileMenu), quitMi);
    gtk_menu_shell_append(GTK_MENU_SHELL(menubar), fileMi);
    gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 0);


    g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);

    g_signal_connect(G_OBJECT(quitMi), "activate", G_CALLBACK(gtk_main_quit), NULL);



    gtk_widget_show_all(window);

    gtk_main();

    return 0;
    }

Aucun commentaire:

Enregistrer un commentaire