我想知道如何编辑使用 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;
}