快速+ GtkWindow默认关闭按钮

时间:2012-07-04 18:40:59

标签: window gtk pygtk tray

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

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

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

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

感谢您的时间!

1 个答案:

答案 0 :(得分:1)

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

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