Ich verwende Qt IDE, um meine Anwendung zu erstellen und am Ubuntu Showdown-Wettbewerb teilzunehmen. In meiner Bewerbung habe ich Folgendes getan:
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));
}
Im Grunde versuche ich also, einen einfachen Indikatoreintrag zu erstellen, der beim Klicken den Indikator ausblendet und die Anwendung anzeigt. Der Indikator kann mit dem PASSIVE-Ding dort erfolgreich ausgeblendet werden, aber während des Aufrufs data-> show (); stürzt die Anwendung ab.
Jede Hilfe bei dem, was ich falsch mache, wäre dankbar! Bitte helfen Sie mir auch, dieses Problem zu beheben (alternativ werde ich auf das alte und gute Tray-Symbol migrieren (es funktioniert ohnehin in 12.04 einwandfrei), das ich sehr einfach und effizient behandeln kann).