2012-02-03 173 views
1

我看到rekonq有一个名为首选项的工具栏项,就像点击Chromium一样,然后出现一个下拉菜单!GTK +下拉菜单到工具栏项目

我该如何在应用程序上做类似的事情? 我认为它有一个gtk_toolbar_item,当它被点击时放置一个gtk_menu,但是如何?

Example of Drop down menu

+0

你看了吗? http://www.gtk.org/api/2.6/gtk/GtkCombo.html – 2012-02-03 17:45:38

+0

感谢您的帮助,但这是一个文本输入与下拉。我试图做的是添加一个菜单到工具栏项目时它的点击,像在rekonq或铬 – Rrjrjtlokrthjji 2012-02-03 18:00:39

+0

你可以发布一个链接到你正在谈论的图片吗?特别是如果你能显示@ ptomato答案中缺少的东西,至少对我来说不是很清楚。 – ergosys 2012-02-04 22:03:29

回答

2

在C语言中,你可以这样做:

GtkToolItem *menubutton = gtk_menu_tool_button_new(NULL, NULL); 
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), menubutton, 1); 
GtkWidget *menu = gtk_menu_new(); 
gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(menubutton), menu); 
GtkAction *action = gtk_action_new("dropdown-menu", "Dropdown", "Click me", GTK_STOCK_PREFERENCES); 
gtk_action_connect_proxy(action, GTK_WIDGET(menubutton)); 
g_signal_connect(action, "activate", G_CALLBACK(popup_menu), menu); 

... 

void 
popup_menu(GtkAction *action, GtkMenu *menu) 
{ 
    gtk_menu_popup(menu, NULL, NULL, NULL, NULL, 1, gtk_get_current_event_time()); 
} 
+0

多数民众赞成好,但是当我添加一个“文件”菜单项像它:GtkWidget * file1 = gtk_menu_item_new_with_label(“File”); gtk_menu_shell_append(menu,file1);我不能看到该项目,但只有下拉菜单。是否有可能隐藏底部箭头的东西? – Rrjrjtlokrthjji 2012-02-03 19:50:03

+0

你在说什么底部箭头? – ptomato 2012-02-04 12:22:25

+0

menu_tool_button有一个箭头,当它被点击时显示菜单。我正在寻找菜单来显示当我点击按钮而不是它所构成的小底部箭头。 – Rrjrjtlokrthjji 2012-02-04 12:52:44