[英]How can I run gtk.main() asynchronsly in pygtk?
到目前为止,我的基本代码如下。 如何对gtk.main()进行线程处理,以使Display初始化后的代码异步运行?
import pygtk
pygtk.require("2.0")
import gtk
class Display():
def __init__(self):
self.fail = "This will fail to display"
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.connect("destroy", lambda w: gtk.main_quit())
window.show()
self.main()
def main(self):
gtk.main()
class Test():
def __init__(self, display):
print display.fail
d = Display()
t = Test(d)
只需将gtk.main
调用放在所有其他内容之后即可。 如果需要将控制器放在单独的线程中,请确保通过执行gobject.idle_add( widget.method )来执行所有与gtk相关的功能/方法。
import pygtk
pygtk.require("2.0")
import gtk
class Display(object):
def __init__(self):
self.fail = "This will fail to display"
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.connect("destroy", lambda w: gtk.main_quit())
window.show()
class Test(object):
def __init__(self, display):
print display.fail
d = Display()
t = Test(d)
gtk.main()
您可以将Twisted与gtk2reactor一起使用。
http://twistedmatrix.com/documents/current/core/howto/choosing-reactor.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.