5

在 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 中实时构建?

谢谢,

纳尼

4

1 回答 1

0

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

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

它看起来有相同的行为。这不是那么方便,但您仍然可以在解释器中做一些工作。

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

于 2012-03-04T08:55:55.113 回答