GTK C – 如何编辑关闭窗口按钮的function(右上角的X按钮)?

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

我对gtk有点新,我在创建窗口和添加按钮方面经历了一些初学者教程,但没有什么非常先进的。

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

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

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

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

这个小代码应该让你继续前进,我希望它能够自我解释。

#include  #include  #include  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; } 

这是gtk_widget_hide_on_delete用于的内容。

g_signal_connect (window, "delete-event", G_CALLBACK (gtk_widget_hide_on_delete), NULL);

您的子窗口只会被隐藏。 只需在主窗口中放置一个菜单或工具按钮即可再次显示/隐藏它。

“删除事件”是在单击窗口管理器的“关闭”按钮时调用的事件。

您需要监听窗口小部件的delete-event 。