- 论坛徽章:
- 5
|
我懂了………你是64位的系统。
恩,那无解了,不过我还是有办法:- #include <gtk/gtk.h>
- void on_menu_activate(GtkMenuItem *menu, guint action_data);
- static gchar *textlist[] = {
- NULL,
- "退出",
- "复制",
- "关于",
- };
- 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,1,"<StockItem>",GTK_STOCK_QUIT},
- {"/编辑(_E)",NULL,NULL,0,"<Branch>"},
- {"/编辑(_E)/复制",NULL,on_menu_activate,2,"<StockItem>",GTK_STOCK_COPY},
- {"/帮助(_H)",NULL,NULL,0,"<Branch>"},
- {"/帮助(_H)/关于",NULL,on_menu_activate,3,"<StockItem>",GTK_STOCK_ABOUT}
- };
- void on_menu_activate(GtkMenuItem *menu, guint action_data)
- {
- printf("Menu %s is pressed.\n", textlist[action_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`' */
复制代码 |
|