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