为什么threading.Timer函数没有在python中用Gtk.main调用

时间:2013-07-30 12:03:42

标签: python gtk python-multithreading

我正在尝试在Gtk应用程序中轮询一个函数。代码是......

from gi.repository import Gtk
import sys,threading

def destroy(k):
print "destroyed"
sys.exit()

def poll():
print "called it "
t=threading.Timer(1,poll)
t.start()

build=Gtk.Builder()
build.add_from_file('test.glade')    # it just creates a top level window
window=build.get_object("boxy")
build.connect_signals({"destroyit":destroy})
window.show_all()
t=threading.Timer(1,poll)
t.start()
Gtk.main()

轮询功能没有被执行..但是如果我删除Gtk.main(),它工作正常...那么是怎么回事..为什么它没有主要工作而不用主...而且怎么做我在这个..除了threading.timer之外的其他选择中执行一个轮询函数?

编辑:我通过使用GObject.timeout_add(5000,po​​ll)找到了方法,但我仍然想知道,为什么threading.Timer函数不执行...

1 个答案:

答案 0 :(得分:0)

我找到了问题的答案......

GObject.timeout_add(5000,poll)