我想知道如何编辑使用 GTK 库创建的窗口右上角的“关闭”按钮(或最小化/最大化按钮)。我试图删除用户销毁此窗口的能力,只允许顶层窗口销毁它,所以我希望右上角的 X 按钮(关闭窗口)只隐藏窗口而不是关闭它 - 仍然允许它在后台运行。

我对 gtk 有点陌生,在创建窗口和添加按钮方面我已经阅读了一些初学者教程,但没有什么非常高级的。

我假设这可以通过在窗口上使用 gtk_window_hide 调用代替 X 按钮的当前功能来完成,但我不确定在哪里使用它,因为默认按钮的功能似乎不容易访问。

最佳答案

在 GTK 中,您监听小部件发出的信号。在 Java 等其他语言(您可能更熟悉其中的术语)中,这些通常称为事件。

如果发生事件,例如“删除”小部件,则会触发相应的信号,您可以通过连接 g_signal_connect 等来应用该信号。

我建议您安装 devhelp 以获得良好的 GTK 文档/在线帮助。

这个小代码会让您继续前进,我希望对您来说是不言自明的。

    #include <stdio.h>
    #include <gtk/gtk.h>
    #include <stdlib.h>

    int
    main (int argc, char **argv)
    {
      GtkWidget *window;

      gtk_init (&argc, &argv);

      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
      g_signal_connect (window, "delete_event", G_CALLBACK (gtk_window_iconify), NULL);

      gtk_widget_show (window);
      gtk_main ();

      return EXIT_SUCCESS;
    }

10-08 09:27
查看更多