- 论坛徽章:
- 5
|
都是被废弃掉的啊………………
那你只能试下这个了:- #include <gtk/gtk.h>
- void on_menu_activate(GtkMenuItem *menu, gpointer data);
- static GtkItemFactoryEntry menu_items[] = {
- {"/文件(_F)",NULL,NULL,0,"<Branch>"},
- {"/文件(_F)/新建",NULL,on_menu_activate,0,"<StockItem>",GTK_STOCK_NEW},
- {"/文件(_F)/-",NULL,NULL,0,"<Separator>"},
- {"/文件(_F)/退出",NULL,on_menu_activate,(guint)"退出","<StockItem>",GTK_STOCK_QUIT},
- {"/编辑(_E)",NULL,NULL,0,"<Branch>"},
- {"/编辑(_E)/复制",NULL,on_menu_activate,(guint)"复制","<StockItem>",GTK_STOCK_COPY},
- {"/帮助(_H)",NULL,NULL,0,"<Branch>"},
- {"/帮助(_H)/关于",NULL,on_menu_activate,(guint)"关于","<StockItem>",GTK_STOCK_ABOUT}
- };
- void on_menu_activate(GtkMenuItem *menu, gpointer data)
- {
- printf("Menu %s is pressed.\n", (gchar*)data);
- }
- int main ( int argc, char *argv[] )
- {
- GtkWidget *window;
- GtkWidget *box;
- GtkWidget *menubar;
- GtkAccelGroup *accel_group;
- GtkItemFactory *item_factory;
- gint items_count = 8;
- gtk_init(&argc, &argv);
- window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(gtk_main_quit),
- NULL);
- gtk_window_set_title(GTK_WINDOW(window), "添加菜单的快捷方式");
- accel_group = gtk_accel_group_new();
- gtk_window_add_accel_group(GTK_WINDOW(window), accel_group);
- box = gtk_vbox_new(FALSE, 0);
- gtk_container_add(GTK_CONTAINER(window), box);
- item_factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR,"<main>",accel_group);
- gtk_item_factory_create_items(item_factory, items_count, menu_items, NULL);
- menubar = gtk_item_factory_get_widget(item_factory, "<main>");
- gtk_box_pack_start(GTK_BOX(box), menubar, FALSE, FALSE, 0);
- gtk_widget_show_all(window);
- gtk_main();
- return 0;
- }
- /* cc: libs+='`pkg-config --cflags --libs gtk+-2.0`' */
复制代码 |
|