如何解决在tkinter中生成点击事件
| 我打算对tkitner 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 \"!\"
我生成的click事件未调用Test.returnEvent方法。但是,如果我进行真正的点击,它会按预期工作。
解决方法
如果我没有记错(并且自从尝试这样做以来可能已经有好多年了),则光标需要位于tne按钮上方才能启动绑定。
您知道按钮的“调用”方法吗?您可以使用它来模拟按钮的按下。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。