快速 + Gtk窗口默认关闭按钮



我用Ubuntu快速工具做了一个gtk应用程序。但是我在窗口关闭按钮(窗口左上角的按钮)时遇到了一些问题。所以事情是这样的:我希望我的应用程序在系统托盘中关闭,所以我在一个方法中编写代码,在我的窗口上创建一个按钮并将"单击"信号连接到我的方法。一切都在正常进行。现在我希望我的窗口关闭按钮做同样的事情。当我查找快速编写的代码时,我发现了此方法:

 def on_destroy(self, widget, data=None):
    # Clean up code for saving application state should be added here.
    Gtk.main_quit()

因此,我为部署在窗口上的按钮调用了我的处理程序,而不是 Gtk.main_quit()。现在的事情是我的应用程序隐藏在系统托盘上,但是当我想取消隐藏它时,没有窗口,尽管我可以看到我的应用程序的进程是活的。我想说的是,当我使用我创建的按钮时,当我取消隐藏它时,我可以看到我的应用程序,所以很明显,当我按下系统关闭按钮时,有多个信号。

所以我的问题是,当我从系统按钮关闭窗口时,还会调用哪些其他信号?这个地方在哪里快速实现其他信号的处理程序?

谢谢你的时间!

您的窗口"destroy"。连接到该信号允许您运行一些代码,但是,您的窗口仍然被破坏。如果你没有通过Gtk.main_quit()脱离主循环,那么你的应用仍在运行。要重新显示窗口,您需要重新创建它。

另一种选择是将回调函数连接到窗口的"delete-event"。在此信号处理程序中,如果返回True窗口不会被破坏。换句话说,您可以隐藏窗口并返回True然后稍后重新显示窗口。如果从此信号处理程序返回False,则窗口将继续被销毁。

最新更新