我正在学习有关Python和Tkinter的基础知识,我正在关注this tutorial。
问题是,该教程的最后一个练习是
import tkinter as tk
counter = 0
def counter_label(label):
def count():
global counter
counter += 1
label.config(text=str(counter))
label.after(1000,count)
count()
root = tk.Tk()
root.title ("Counting")
label = tk.Label(root, fg = "green")
label.pack()
button = tk.Button(root, text='Stop', width=25, command=root.destroy)
button.pack()
root.mainloop()
我遇到的问题是应用程序中没有显示数字,尽管应用程序和停止按钮工作正常。我一直在寻找答案,但我没有找到答案。
提前致谢!
答案 0 :(得分:1)
只需在counter_label(label)
之前添加root.mainloop()
即可。它应该按预期工作。
请记住,为了使函数正常工作,您需要在代码中的某个位置调用该函数。只是拥有该函数而不调用它将导致很多东西。
这一行:
label.config(text=str(counter))
不需要str()
部分。您可以将其删除,然后离开counter
像这样:
label.config(text=counter)
Tkinter标签可以带一个字符串或一个int。这不是问题。
此外,如果您在计数功能中将label.config(text=str(counter))
移到counter += 1
以上,则计数器将从零开始,而不是1。
答案 1 :(得分:1)
"为什么Tkinter不显示基本计数器?"
它 显示计数器(如果它指的是计数器应该增加的label
),那只是{{1}因为没有更新它,所以显示一个空字符串。添加:
label
看到标签确实存在。
作为Carcigenicate points out,您永远不会调用该函数来实际修改标签。假设您需要一秒钟的计时器,请在label['text'] = 0
之前添加上下行:
root.mainloop()