我一直试图在应用指标菜单中添加图标但没有成功,我一直在使用GtkMenu
。
我找到了一些引用GMenu
的代码,并使用g_menu_set_icon
在菜单标签旁边显示了一个图标。
这两套菜单有什么区别?是否应该使用另一个? GMenu似乎功能更全面,但如果我应该使用GtkMenu
,我将如何显示图标?
我试过这个没用的。它显示了标签文本,但没有显示图标。
GtkWidget* NewMenuItemWithIcon(const char* name)
{
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6);
GtkWidget *icon = gtk_image_new_from_icon_name("status", GTK_ICON_SIZE_MENU);
GtkWidget *label = gtk_label_new(name);
GtkWidget *menu_item = gtk_menu_item_new();
gtk_container_add(GTK_CONTAINER(box), icon);
gtk_container_add(GTK_CONTAINER(box), label);
gtk_container_add(GTK_CONTAINER(menu_item), box);
return menu_item;
}
更新
似乎GMenu不会从GtkWidget继承。所以这是一种不同的菜单。但是,app_indicator_set_menu期望GtkMenu不是GMenu所以正确使用的菜单是GtkMenu。
然而,图标问题仍然存在。我能够使用已弃用的api gtk_image_menu_item
但它被弃用了。所以理想情况下我不应该使用它。上面的代码直接来自api docs。声称是等效的,它似乎不起作用。