Korzystam z Qt IDE w celu zbudowania aplikacji, aby wziąć udział w konkursie Ubuntu Showdown. W mojej aplikacji wykonałem następujące czynności:
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));
}
Zasadniczo więc próbuję wprowadzić prosty wskaźnik, który po kliknięciu ukryje wskaźnik i wyświetli aplikację. Wskaźnik można z powodzeniem ukryć za pomocą PASYWNEJ funkcji, ale podczas danych połączenia-> pokaż () ;, aplikacja ulega awarii.
Będziemy wdzięczni za wszelką pomoc w tym, co robię źle. Pomóż mi również rozwiązać problem, z którym się zmagam (alternatywnie przejdę do starej i dobrej ikony zasobnika (w każdym razie działa dobrze w 12.04), z którą bardzo łatwo i skutecznie sobie poradzę)
Odpowiedzi:
Nie powinieneś używać libappindicator do tworzenia wskaźnika aplikacji w programach Qt. Jest lepszy sposób!
Jeśli masz zainstalowany sni-qt , który automatycznie zastąpi instancje QSystemTrayIcon kodem do renderowania tej ikony tacy jako pozycji Powiadomienia o stanie KDE , którą usługa Wskaźnik aplikacji pobierze i wyświetli na pasku menu Ubuntu .
źródło
Powiedziałbym, że próbujesz przekazać tutaj wskaźnik „ten” jako wskaźnik podobny do „* this”
do
źródło