在编写一个包含多个窗口的 Python MDI 应用程序时,遇到了一个问题:无法调用 gtk.main_quit 函数来终止 GTK+ 主循环。有时会收到关于调用位于主循环之外的提示,有时则根本不会调用该函数。
为了解决这个问题,尝试创建了一个“根”窗口作为占位符,它从不显示,但控制着应用程序的 GTK+ 循环。完整的代码如下:
import pygtk
pygtk.require("2.0")
import gtk
class App(gtk.Window):
_exitStatus = 0
# Generic message box
def msg(self, title, text, type = gtk.MESSAGE_INFO, buttons = gtk.BUTTONS_OK):
# Must always have a button
if buttons == gtk.BUTTONS_NONE:
buttons = gtk.BUTTONS_OK
dialog = gtk.MessageDialog(None, 0, type, buttons, title)
dialog.set_title(title)
dialog.set_geometry_hints(min_width = 300)
dialog.set_resizable(False