设为首页 加入收藏

TOP

12.6.4 使用菜单
2013-10-12 06:47:33 来源: 作者: 【 】 浏览:103
Tags:12.6.4 使用 菜单

12.6.4  使用菜单

(1)创建菜单

GtkWidget * gtk_menu_new()
GtkWidget * gtk_menu_new_with_label(gchar *label)

(2)生成菜单项

GtkWidget * gtk_menu_item_new()
GtkWidget * gtk_menu_item_new_with_label(gchar *label)

(3)插入菜单项

void gtk_menu_append(GtkMenu *menu,GtkWidget *child)
void gtk_menu_set_submenu(GtkMenuItem *item GtkMenu *menu)

(4)创建菜单条

GtkWidget *gtk_menu_bar_new(void)

(5)向菜单条中加入菜单

void gtk_menu_bar_append(GtkMenuBar *bar, GtkWidget *child)

创建菜单的步骤如下。

① 使用gtk_menu_new()或gtk_menu_new_with_label()生成一个新菜单。

② 使用gtk_menu_item_new()或gtk_menu_new_with_label()生成一个新的菜单项,然后使用gtk_menu_append()将菜单项加入到菜单中。

③ 使用gtk_menu_item_new()或gtk_menu_new_with_label()创建主菜单。

④ 使用gtk_menu_set_submenu()将各个菜单加入到主菜单中。

⑤ 使用gtk_menu_bar_new()创建菜单条。然后使用gtk_menu_bar_append()把主菜单加入到菜单条上。

例12-8  创建菜单,程序名为menu.c。

#include<gtk/gtk.h>
int main(int argc,char **argv)
{
GtkWidget *window;
GtkWidget *menu;
GtkWidget *menubar;
GtkWidget *rootmenu;
GtkWidget *menuitem;

gtk_init(&argc,&argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window),"Menu Demo");
g_signal_connect(GTK_OBJECT(window),"destroy",
GTK_SIGNAL_FUNC(gtk_main_quit),NULL);
gtk_container_border_width(GTK_CONTAINER(window),20);

/*创建一个新菜单,然后创建3个菜单项,并把这3个菜单项加入到菜单中*/
menu = gtk_menu_new();

menuitem = gtk_menu_item_new_with_label("New");
gtk_menu_append(GTK_MENU(menu),menuitem);
gtk_widget_show(menuitem);

menuitem = gtk_menu_item_new_with_label("Open");
gtk_menu_append(GTK_MENU(menu),menuitem);
gtk_widget_show(menuitem);

menuitem = gtk_menu_item_new_with_label("Close");
gtk_menu_append(GTK_MENU(menu),menuitem);
gtk_widget_show(menuitem);

/*创建一个主菜单*/
rootmenu = gtk_menu_item_new_with_label("File");
gtk_widget_show(rootmenu);

/*将菜单加入到主菜单中*/
gtk_menu_item_set_submenu(GTK_MENU_ITEM(rootmenu),menu);
/*创建菜单条*/
menubar = gtk_menu_bar_new();
/*将主菜单条加入到菜单条中*/
gtk_menu_bar_append(GTK_MENU_BAR(menubar),rootmenu);

/*使用同样的方法,创建第二组菜单*/
menu = gtk_menu_new();     
menuitem = gtk_menu_item_new_with_label("Cut");
gtk_menu_append(GTK_MENU(menu),menuitem);
gtk_widget_show(menuitem);

menuitem = gtk_menu_item_new_with_label("Paste");
gtk_menu_append(GTK_MENU(menu),menuitem);
gtk_widget_show(menuitem);

rootmenu = gtk_menu_item_new_with_label("Edit");
gtk_widget_show(rootmenu);

gtk_menu_item_set_submenu(GTK_MENU_ITEM(rootmenu),menu);
gtk_menu_bar_append(GTK_MENU_BAR(menubar),rootmenu);

/*将菜单条加入到窗口中,并显示菜单条和窗口*/
gtk_container_add(GTK_CONTAINER(window),menubar);
gtk_widget_show(menubar);
gtk_widget_show(window);

gtk_main();

return 0;
}

程序运行后的界面如图12-9所示。

图12-9  运行结果界面

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇12.6.3 生成对话框 下一篇12.6.2 表格控件

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: