首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError: counter_label()缺少一个必需的位置参数:'label‘

TypeError: counter_label()缺少一个必需的位置参数:'label‘
EN

Stack Overflow用户
提问于 2022-11-21 17:30:35
回答 1查看 29关注 0票数 0

我会数数字,但我不会在标签上倒计时

Tkinter回调回溯中的异常(最近一次调用):文件“C:\Program-Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2288.0_x64__qbz5n2kfra8p0\lib\tkinter_init_.py”,第1921行, call 返回self.func(*args)文件"C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2288.0_x64__qbz5n2kfra8p0\lib\tkinter_init_.py",行839,以callit

func(*args) TypeError: counter_label()缺少一个必需的位置参数:‘label’

代码语言:javascript
复制
import tkinter as tk
counter = 0 
status = 1
def counter_label(label):
    global status
    def countup():
        global counter
        counter += 1
        
        label.after(1000, countup)
    
    def countdown():
        global counter
        counter -=1
        # for num in range(start,0,-1):
        #     print(num)
        
        label.after(1000,countdown)
    
    
    if status == 1:
        countup()
                
    if counter == 11:
        status = 0
                
    if status == 0:
        countdown()
                
    if counter == 0:
        status = 1 
    label.config(text=str(counter))

    label.after(1000,counter_label)


print(counter)

root = tk.Tk()
root.title("Counting Seconds")
label = tk.Label(root, fg="green")
label.pack()
counter_label(label)

root.mainloop()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-21 17:41:55

递归调用

代码语言:javascript
复制
label.after(1000,counter_label)

可以修改为包含带有匿名函数的标签参数。

代码语言:javascript
复制
label.after(1000,lambda x=label: counter_label(x))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74522773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档