如何隐藏顶层窗口而不关闭它?
NdmWindow 是一个继承自 Gtk::Window 的类。我已将 NdmWindow 的实例添加到 Gtk::Application。
现在,我如何隐藏它而不是关闭它?
提前致谢..
根据this,行为是当一个窗口被隐藏时,它会从 中删除Gtk::Application
,因此如果它是最后一个窗口,则应用程序退出。
如果您希望您的应用程序在没有窗口显示时继续运行,解决方案是调用hold()
您的Gtk::Application
对象以增加应用程序的引用计数。大概您在设置任何窗口之前执行此操作,并将相应的调用release()
作为退出逻辑的一部分。
这是一个有效但无效的解决方案segfault
。保存对 的引用Gtk::Application
,例如将其作为参数发送到您的 mainWindow class
并调用var app
它,稍后您将需要它,因为在某些情况下get_application()
会返回它,所以需要它null
。
在您的窗口调用的删除事件处理程序中
app->hold();
hide();
return true;
app->release()
当你想让你的窗口再次显示时不要调用,因为它会使你的应用程序完全退出。只需调用set_visible()
您的窗口对象,它就会显示出来。