在Windows XP上调用gtk.threads_init()后,gobject.timeout_add()无法正常工作

时间:2013-06-26 10:17:34

标签: python multithreading user-interface gtk pygtk

以下简单代码将永久挂起在Windows XP上,并且“检查对话框”文本永远不会输出到控制台。在代码中创建的窗口显示但被阻止(当我将鼠标移动到窗口区域时,鼠标指针始终是“加载”图标)

虽然相同的代码在Windows 7上运行良好

运行时详细信息:Windows XP SP3,python 2.7.5,pytgtk-2.24-allinone

import gtk
import gobject

def checkDialog():
  print 'check dialog'
  return True

gobject.timeout_add(500, checkDialog)
gtk.threads_init()
w = gtk.Window()
w.show()
gtk.main()

1 个答案:

答案 0 :(得分:0)

最后,来自irc频道#pygtk的一个人给了我答案:

我需要使用 gobject.threads_init()而不是 gtk.threads_init()

可在此处找到完整的解决方案pygtk gobject.timeout_add() won’t work after calling gtk.threads_init() on windows xp