2
我正在单元测试我的tkitner GUI。在tkinter中生成单击事件
因此我试图从一个单独的线程生成点击事件。 下面是一个例子测试Tkinter.Button:
import unittest, threading
from Tkinter import *
class clickThread(threading.Thread):
def __init__(self, root):
threading.Thread.__init__(self)
self.root = root
def run(self):
button = filter(lambda a: isinstance(a, Button), self.root.children.values())[0]
print button
button.focus()
button.event_generate("<Button-1>")
button.event_generate("<ButtonRelease-1>")
print "clicked"
class Test(unittest.TestCase):
def testName(self):
root = Tk()
button = Button(root, command=self.returnEvent)
button.pack()
thread = clickThread(root)
thread.start()
root.mainloop()
def returnEvent(self):
print "!"
方法Test.returnEvent不是由我产生点击事件被调用。但是,如果我真的点击,它会按预期工作。
谢谢我没有错过调用。仍在学习python和tkinter :) – kasten 2011-05-29 17:19:32