Python 在windows xp上调用gtk.threads_init()后,gobject.timeout_add()不起作用

Python 在windows xp上调用gtk.threads_init()后,gobject.timeout_add()不起作用,python,multithreading,user-interface,gtk,pygtk,Python,Multithreading,User Interface,Gtk,Pygtk,下面的简单代码将永远挂在WindowsXP上,“检查对话框”文本永远不会输出到控制台。代码中创建的窗口显示但被阻止(当我将鼠标移动到窗口区域时,鼠标指针始终是一个“加载”图标) 而同样的代码在Windows7上运行良好 运行时详细信息:WindowsXPSP3、Python2.7.5、pytgtk-2.24-allinone import gtk import gobject def checkDialog(): print 'check dialog' return True go

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

而同样的代码在Windows7上运行良好

运行时详细信息:WindowsXPSP3、Python2.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()

最后,irc频道的一个家伙#pygtk给了我答案:

我需要使用gobject.threads\u init()而不是gtk.threads\u init()


在这里可以找到一个完整的解决方案

在Debian sid上测试,它可以工作。窗口显示,“检查对话框”mesasges打印到控制台。@LiuLang,您在Windows XP上测试过吗?对不起,我没有Windows系统:-(@LiuLang,很抱歉我看到了“窗口显示”为“窗口显示”。)。。