- 论坛徽章:
- 0
|
- #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,"退出","<StockItem>",GTK_STOCK_QUIT},
- {"/编辑(_E)",NULL,NULL,0,"<Branch>"},
- {"/编辑(_E)/复制",NULL,on_menu_activate,"复制","<StockItem>",GTK_STOCK_COPY},
- {"/帮助(_H)",NULL,NULL,0,"<Branck>"},
- {"/帮助(_H)/关于",NULL,on_menu_activate,"关于","<StockItem>",GTK_STOCK_ABOUT}
- };
- 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;
- }
复制代码 编译出现的错误如下:- $ make
- gcc itemfact.c -o itemfact `pkg-config --cflags --libs gtk+-2.0`
- itemfact.c:8:2: 警告: 初始化将指针赋给整数,未作类型转换 [默认启用]
- itemfact.c:8:2: 警告: (在‘menu_items[3].callback_action’的初始化附近) [默认启用]
- itemfact.c:8:2: 错误: 初始值设定中的元素在载入时无法被计算出
- itemfact.c:8:2: 错误: (在‘menu_items[3].callback_action’的初始化附近)
- itemfact.c:10:2: 警告: 初始化将指针赋给整数,未作类型转换 [默认启用]
- itemfact.c:10:2: 警告: (在‘menu_items[5].callback_action’的初始化附近) [默认启用]
- itemfact.c:10:2: 错误: 初始值设定中的元素在载入时无法被计算出
- itemfact.c:10:2: 错误: (在‘menu_items[5].callback_action’的初始化附近)
- itemfact.c:12:2: 警告: 初始化将指针赋给整数,未作类型转换 [默认启用]
- itemfact.c:12:2: 警告: (在‘menu_items[7].callback_action’的初始化附近) [默认启用]
- itemfact.c:12:2: 错误: 初始值设定中的元素在载入时无法被计算出
- itemfact.c:12:2: 错误: (在‘menu_items[7].callback_action’的初始化附近)
- make: *** [all] 错误 1
复制代码 各位帮忙解决下吧 |
|