Не может заставить меню обнаруживаться в пользовательском индикаторе

Я пытаюсь заставить меню показывать в пользовательском приложении, записанном в 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
задан 16 October 2011 в 14:06

1 ответ

Необходимо звонить gtk_widget_show_all(indicator_menu) (по крайней мере, я предполагаю, что это - способ делать его в C, я использую Python).

0
ответ дан 22 December 2019 в 14:19

Другие вопросы по тегам:

Похожие вопросы: