我正在尝试对我的 tkinter GUI 进行单元测试。
因此我尝试从单独的线程生成点击事件。
下面是测试 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 方法。但如果我真正点击一下,它就会按预期工作。
如果我没记错的话(自从我尝试这个以来我可能没有记错)光标需要位于按钮上才能触发绑定。
你知道按钮的“调用”方法吗?您可以用它来模拟按下按钮。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)