【问题标题】:GTK - Run function on window closeGTK - 关闭窗口时运行功能
【发布时间】:2020-05-28 11:01:45
【问题描述】:

我正在尝试在我的 GTK 窗口中单击“x”按钮时运行一个简单的函数,但无法使其正常工作。每次运行时都会出现此错误:

(process:17950): GLib-GObject-WARNING **: 11:58:51.480: ../../../../gobject/gsignal.c:2523: signal 'delete-event' is invalid for instance '0x55a183d991a0' of type 'GtkApplication'

这是我的功能:

main():

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

    // Set up the application and start it
    app = gtk_application_new ("com.sds.hashcrack.server", G_APPLICATION_FLAGS_NONE);
    g_signal_connect (app, "activate", G_CALLBACK (init), NULL);
    g_signal_connect (app, "delete-event", G_CALLBACK (test), NULL);
    status = g_application_run (G_APPLICATION (app), argc, argv);
    g_object_unref (app);

    return status;
}

测试():

gboolean test(GtkWidget *widget, GdkEvent  *event, gpointer   user_data) {
    g_print("Closed");
    return true;
}

谁能解释我做错了什么?非常感谢

【问题讨论】:

    标签: c callback window gtk


    【解决方案1】:

    “删除事件”信号在 GtkWidget 实例上可用,在 GtkApplication 实例上不可用。

    您需要将test 回调连接到您要添加到应用程序的GtkWindow 上的delete-event 信号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-19
      • 2012-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      相关资源
      最近更新 更多