Ubuntu Showdown 공모전에 참여하기 위해 응용 프로그램을 빌드하기 위해 Qt IDE를 사용하고 있습니다. 내 응용 프로그램에서 다음을 수행했습니다.
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));
}
따라서 기본적으로 간단한 지표 항목을 만들려고합니다. 클릭하면 지표가 숨겨지고 응용 프로그램이 표시됩니다. PASSIVE 항목을 사용하여 표시기를 숨길 수 있지만, data-> show (); 호출 중에 응용 프로그램이 중단됩니다.
내가 잘못하고있는 것에 대한 도움을 주시면 감사하겠습니다! 또한 내가 직면하고있는이 문제를 해결하도록 도와주십시오 (또는 대안으로 오래되고 좋은 트레이 아이콘 (12.04에서 잘 작동합니다)으로 매우 쉽고 효율적으로 처리 할 수 있습니다)
당신이 얻는 오류는 무엇입니까?
—
Hernantz
오류 없음, 그것은 단지 충돌 :)
—
hytromo
충돌에서 Stacktrace를 질문에 추가 할 수 있습니까? 앱이 충돌하는 정확한 라인을 지적합니다. 도움이 필요하면이 링크를 확인하십시오. doc.qt.nokia.com/qtcreator-2.3/…
결론 : C ++ 애플리케이션에서 GTK와 Qt를 혼합 하지 마십시오 . 이벤트 루프는 각각 다르게 구성되며 문제가 발생합니다.
—
Nathan Osman