Tôi đang sử dụng Qt IDE để xây dựng ứng dụng của mình để tham gia cuộc thi Ubuntu Showdown. Trong ứng dụng của mình, tôi đã thực hiện như sau:
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));
}
Vì vậy, về cơ bản, tôi đang cố gắng tạo một mục chỉ báo đơn giản, khi nhấp vào, nó sẽ ẩn chỉ báo và hiển thị ứng dụng. Chỉ báo có thể được ẩn thành công bằng cách sử dụng điều PASSIVE ở đó, nhưng, trong khi dữ liệu cuộc gọi-> show ();, ứng dụng gặp sự cố.
Bất kỳ trợ giúp về những gì tôi đang làm sai sẽ được đánh giá cao! Ngoài ra, vui lòng giúp tôi khắc phục sự cố này mà tôi gặp phải (thay vào đó, tôi sẽ chuyển sang biểu tượng khay cũ và tốt (dù sao nó cũng hoạt động tốt trong 12.04) mà tôi có thể xử lý rất dễ dàng và hiệu quả)