J'utilise Qt IDE afin de construire mon application afin de participer au concours Ubuntu Showdown. Dans ma candidature, j'ai fait ce qui suit:
void show_app(MainWindow *data)
{
//this works fine:
app_indicator_set_status(appindicator, APP_INDICATOR_STATUS_PASSIVE);
//this crashes the application:
data->show();
}
void MainWindow::make_indicator()
{
if(appindicator){
//appindicator has already been created
return;
}
appindicator = app_indicator_new("Format Junkie Indicator", "formatjunkie", APP_INDICATOR_CATEGORY_APPLICATION_STATUS);
GtkWidget* showapp_option;
GtkWidget* indicatormenu = gtk_menu_new();
GtkWidget* item = gtk_menu_item_new_with_label("Format Junkie main menu");
gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), indicatormenu);
showapp_option = gtk_menu_item_new_with_label("Show App!");
g_signal_connect(showapp_option, "activate", G_CALLBACK(show_app), this);
gtk_menu_shell_append(GTK_MENU_SHELL(indicatormenu), showapp_option);
gtk_widget_show_all(indicatormenu);
app_indicator_set_status(appindicator, APP_INDICATOR_STATUS_ACTIVE);
app_indicator_set_attention_icon(appindicator, "dialog-warning");
app_indicator_set_menu(appindicator, GTK_MENU (indicatormenu));
}
Donc, fondamentalement, j'essaie de faire une entrée d'indicateur simple, qui, au clic, masquera l'indicateur et affichera l'application. L'indicateur peut être masqué avec succès en utilisant le truc PASSIF là-bas, mais, pendant les données d'appel-> show () ;, l'application se bloque.
Toute aide sur ce que je fais mal serait appréciée! Aussi, veuillez m'aider à corriger ce problème auquel je suis confronté (alternativement, je migrerai vers l'ancienne et bonne icône de la barre d'état (cela fonctionne très bien en 12.04, de toute façon) que je peux gérer très facilement et efficacement)