没有Gtk.main()的窗口不会在GTK3中的python解释器中显示

时间:2012-03-04 06:18:52

标签: python interpreter gtk3

在GTK2中,我很乐意“在飞行中”在翻译器(ipython或普通python)中构建一个gui,并实时看到这些变化:

>>> import gtk
>>> win = gtk.Window()
>>> win.connect('delete-event', gtk.main_quit)
10L
>>> win.show_all()

这将导致显示一个我可以添加对象的窗口。

我正在改为Gtk3,部分原因是因为它是未来,部分是因为我有时会使用现在只有Gtk3的Glade。在使用GTK3时也不要显示窗口:

>>> from gi.repository import Gtk
>>> win = Gtk.Window()
>>> win.connect('delete-event', Gtk.main_quit)
13L
>>> win.show_all()
唉,在最后一行之后没有窗口。它将在以下情况下显示:

>>> Gtk.main()

我甚至尝试过:

>>> win.show_now()

哪个什么也没做。

如何在GTK3中实时构建?

谢谢,

Narnie

1 个答案:

答案 0 :(得分:0)

我尝试使用以下单行处理待处理事件:

>>> while Gtk.events_pending(): Gtk.main_iteration()

它看起来有相同的行为。它不是那么方便,但你仍然可以在翻译中做一些工作。

或者,如果您正在开发Gtk应用程序,pdb.set_trace仍然可以正常运行并让您调试回调,如果这是您正在寻找的。