Saya menggunakan Qt IDE untuk membangun aplikasi saya agar dapat berpartisipasi dalam kontes Showdown Ubuntu. Dalam aplikasi saya, saya telah melakukan hal berikut:
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));
}
Jadi, pada dasarnya saya mencoba membuat entri indikator sederhana, yang, saat klik, akan menyembunyikan indikator dan menampilkan aplikasi. Indikator dapat berhasil disembunyikan menggunakan PASSIVE thingy di sana, tetapi, selama panggilan data-> show () ;, aplikasi crash.
Bantuan apa pun yang saya lakukan salah akan dihargai! Selain itu, tolong bantu saya untuk memperbaiki masalah yang saya hadapi ini (sebagai alternatif, saya akan bermigrasi ke ikon baki yang lama dan bagus (bagaimanapun juga berfungsi dengan baik di 12,04) yang dapat saya tangani dengan sangat mudah dan efisien)
Jawaban:
Anda tidak boleh menggunakan libappindicator untuk membuat Indikator Aplikasi dalam program Qt. Ada cara yang lebih baik!
Jika Anda menginstal sni-qt yang secara otomatis akan menggantikan instance QSystemTrayIcon dengan kode untuk rendering ikon baki itu sebagai Item Notifier Status KDE , yang akan diambil dan ditampilkan oleh layanan Indikator Aplikasi di bilah menu Ubuntu .
sumber
Saya akan mengatakan Anda mencoba melewati pointer "ini" sebagai pointer seperti "* ini" di sini
untuk
sumber