方法内部的 for 循环:类型错误位置参数



我正在尝试使用类用tkinter创建一个简单的Gui。 但我真的不明白如何在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

绑定事件时,会向回调函数提供位置参数event

count方法更改为:

def count(self, event):

您还需要摆脱time.sleep(1)因为.sleep()是一个阻塞调用,这意味着它将阻塞 tkinter 主循环,这将导致您的程序没有响应。

相关内容

  • 没有找到相关文章

最新更新