[英]Gtk hiding window on it's callback
我有一个想要在按下按钮时隐藏的功能。 我读过我可以在一个信号上定义多个回调,并且它们将按照定义的相同顺序被调用。 因此,我想在按下按钮时执行两个功能,并且我想其中之一隐藏包含此按钮的窗口。 我试图这样做:
g_signal_connect(btn_confirm, "clicked", G_CALLBACK(function_that_does_stuff), NULL);
g_signal_connect(btn_confirm, "clicked", G_CALLBACK(kill_window), add_conn_win);
...
void kill_window ( GtkWidget* wdgt, GtkWidget* win )
{
gtk_widget_hide_all(win);
}
但这是行不通的。 窗还在。 有人可以告诉我该怎么做吗?
首先,请参阅文档中有关gtk_widget_hide_all()的内容 :
从2.24版开始,gtk_widget_hide_all已被弃用,不应在新编写的代码中使用
相反,您应该使用gtk_widget_hide() 。 规范说它
反转gtk_widget_show()的效果,导致小部件被隐藏(用户不可见)。
如评论所述,确保您的回调已被触发。 然后尝试
gtk_widget_hide (win);
我认为应该做的工作,如果有帮助,请告诉我!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.