C-GTK-g_application_quit [英] C - GTK - g_application_quit

查看:188
本文介绍了C-GTK-g_application_quit的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我退出gtk应用程序时遇到问题. g_application_quit的函数调用会导致随后的错误:

I have a problem with quitting a gtk application. The function call of g_application_quit results in the subsequent error:

GLib-GIO-CRITICAL **: g_application_quit: assertion 'G_IS_APPLICATION (application)' failed

代码段如下所示:

g_signal_connect(app_window, "destroy", G_CALLBACK(g_application_quit), app);

我也尝试过此操作,但仍然会抛出相同的错误:

I tried this also, but still throws the same error:

g_signal_connect(app_window, "destroy", G_CALLBACK(g_application_quit), G_APPLICATION(app));

该应用初始化为:

GtkApplication *app = gtk_application_new("my.ne.sweeper", G_APPLICATION_FLAGS_NONE);

感谢您的帮助.谢谢.

推荐答案

如果您正在使用G_APPLICATION,则无需将g_application_quit显式连接到窗口的destroy信号,它将自动完成.

You don't need to connect g_application_quit to window's destroy signal explicitly if You are using G_APPLICATION, it is done automatically.

这里有个简单的例子:

#include <gtk/gtk.h>

static void activate (GtkApplication* app, gpointer data) {
  GtkWidget *window;

  window = gtk_application_window_new(app);
  gtk_window_set_default_size(GTK_WINDOW (window), 400, 200);
  gtk_widget_show_all(window);
}

int main (int argc, char **argv) {
  GtkApplication *app;
  int status;

  app = gtk_application_new("your.app.name", G_APPLICATION_FLAGS_NONE);
  g_signal_connect(app, "activate", G_CALLBACK (activate), NULL);
  status = g_application_run(G_APPLICATION(app), argc, argv);
  g_object_unref(app);

  return status;
}

这篇关于C-GTK-g_application_quit的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆