GMenu和GtkMenu有什么区别?

时间:2016-03-20 21:48:45

标签: ubuntu-14.04 gtk3 gnome-3

我一直试图在应用指标菜单中添加图标但没有成功,我一直在使用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。声称是等效的,它似乎不起作用。

0 个答案:

没有答案