我正在尝试使用类创建一个简单的Gui和tkinter。
但我真的不明白如何在count
方法中进行for循环工作,有人能告诉我在哪里可以添加缺少的参数吗?
from tkinter import *
import time
class App:
def __init__(self, master):
self.container1 = Frame(master)
self.container1.pack()
self.button1 = Button(self.container1, text="count")
self.button1.bind("<Button-1>", self.count)
self.button1.pack()
def count(self):
for i in range(100):
self.button1["text"] = str(i)
time.sleep(1)
root = Tk()
Myapp = App(root)
root.mainloop()
错误是:
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.5/tkinter/__init__.py", line 1553, in __call__
return self.func(*args)
TypeError: count() takes 1 positional argument but 2 were given
答案 0 :(得分:2)
绑定事件时,会向回调函数提供位置参数event
。
将count
方法更改为:
def count(self, event):
你还需要摆脱time.sleep(1)
,因为.sleep()
是一个阻塞调用,这意味着它将阻止tkinter主循环,这会导致程序无法响应。