Не удается отобразить меню в пользовательском индикаторе
Я пытаюсь получить меню для отображения в пользовательском приложении, написанном на C. Я создаю GtkMenu, заполняю его GtkMenuItem(s) и добавляю его в индикатор, который отображается в списке индикаторов, но меню не, Я чувствую себя глупо спрашивать об этом, так как я уверен, что просто что-то упускаю, но я буду использовать в качестве оправдания тот факт, что я устал, так как здесь довольно поздно. Заранее благодарю за любую помощь.
int main(int argc, char *argv[])
{
AppIndicator *indicator;
GtkWidget *indicator_menu;
GtkWidget *quitMenuItem;
gtk_init(&argc, &argv);
indicator_menu = gtk_menu_new();
quitMenuItem = gtk_menu_item_new_with_label("Exit");
g_signal_connect(G_OBJECT(quitMenuItem), "activate",
G_CALLBACK(gtk_main_quit), NULL);
gtk_menu_append(indicator_menu, gtk_menu_item_new_with_label("entry1"));
gtk_menu_append(indicator_menu, gtk_menu_item_new_with_label("entry2"));
gtk_menu_append(indicator_menu, gtk_separator_menu_item_new());
gtk_menu_append(indicator_menu, quitMenuItem);
indicator = app_indicator_new("test-client", "user-offline",
APP_INDICATOR_CATEGORY_APPLICATION_STATUS);
app_indicator_set_status(indicator, APP_INDICATOR_STATUS_ACTIVE);
app_indicator_set_attention_icon(indicator, "indicator-messages-new");
app_indicator_set_menu(indicator, GTK_MENU(indicator_menu));
//gtk_widget_show(indicator_menu);
gtk_main();
return 0;
}
1 ответ
Решение
Вам следует позвонить gtk_widget_show_all(indicator_menu)
(по крайней мере, я полагаю, что так и происходит в C, я использую Python).