[英]GTK app: How do I create a working indicator with Qt/C++?
我已经在2个论坛中尝试过,但是到目前为止我还没有运气。
因此,我正在使用Qt IDE来构建我的应用程序,以便参加Ubuntu Showdown竞赛。 在我的应用程序中,我完成了以下操作:
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();期间,应用程序崩溃。
任何对我做错事的帮助将不胜感激! 另外,请帮助我纠正我面临的这个问题(或者,我将迁移到旧的且良好的任务栏图标(无论如何,它在Ubuntu 12.04中都可以正常工作),我可以非常轻松有效地处理它)
activate
信号的回调必须具有以下类型:
void callback(GtkMenuItem *, gpointer)
所以show_app
应该这样定义
void show_app(GtkMenuItem *showapp_option, MainWindow *data)
那应该解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.