【发布时间】:2019-04-02 01:38:41
【问题描述】:
我正在尝试使用 tkinter 创建一个类似于游戏的答题器作为练习。我对 tkinter 很陌生,所以如果问题非常基本,我深表歉意。我设置了一个按钮来增加点击次数,我还试图设置一个自动点击功能。我的代码的问题是点击次数仅在单击按钮时更新,而不是按预期每秒更新。尝试在 master.after(1000,autoClick) 之后直接使用 label1.config(text=str(click)) 时出现错误。还有其他方法可以让 GUI 每秒更新一次吗?
from tkinter import *
import time
click = 0
master = Tk()
def onClick():
global master
global click
click += 1
label1.config(text=str(click))
def autoClick():
global master
global click
click += 1
master.after(1000,autoClick)
label1.config(text=str(click))
autoClick()
label1=Label(master, text=str(click))
label1.pack()
clickButton = Button(master, text = "click", command = onClick)
clickButton.pack()
mainloop()
print(click)
错误信息
File "D:\Anaconda\lib\tkinter\__init__.py", line 1476, in _configure
self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
TclError: invalid command name ".!label"
【问题讨论】:
-
您在创建
label1之前调用该函数。在 mainloop() 之前移动autoclick函数