首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有Gtk.main()的GTK3中,窗口不会在python解释器中显示

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

Stack Overflow用户
提问于 2012-03-04 14:18:52
回答 1查看 670关注 0票数 5

在GTK2中,我喜欢在解释器(ipython或普通python)中“即时”地构建gui,并像这样实时看到变化:

代码语言:javascript
复制
>>> import gtk
>>> win = gtk.Window()
>>> win.connect('delete-event', gtk.main_quit)
10L
>>> win.show_all()

这将导致显示一个窗口,我可以在其中添加对象。

我之所以改用Gtk3,一方面是因为它是未来的趋势,另一方面是因为我有时会使用Glade,现在它只是Gtk3。在对GTK3执行相同的操作时,不会显示窗口:

代码语言:javascript
复制
>>> from gi.repository import Gtk
>>> win = Gtk.Window()
>>> win.connect('delete-event', Gtk.main_quit)
13L
>>> win.show_all()

遗憾的是,在最后一行之后没有窗口。它不会显示,直到:

代码语言:javascript
复制
>>> Gtk.main()

我甚至试过:

代码语言:javascript
复制
>>> win.show_now()

它什么也没做。

有什么想法可以在GTK3中实时构建吗?

谢谢,

纳尼

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-04 16:55:55

我尝试使用以下一行代码处理挂起的事件:

代码语言:javascript
复制
>>> while Gtk.events_pending(): Gtk.main_iteration()

它看起来也有同样的行为。虽然不是很方便,但是您仍然可以在解释器中做一些工作。

或者,如果您正在开发一个Gtk应用程序,pdb.set_trace仍然可以工作,并允许您调试回调(如果这是您想要的)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9552815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档