在def中找不到text变量



我有这个代码:

from tkinter import *
def mine():
global textVar
textVar = StringVar()
textVar.set('Text')

root = Tk()
root.title('Miner v1.0')
root.geometry('400x240')
miningButton = Button(root, text='Mine', command=mine)
miningButton.pack()
mainLabel = Label(root, textvariable=textVar)
mainLabel.pack()
root.mainloop()

我已经将textVar设为全局变量,但它找不到mainLabel,它说它是未定义的。但当textVardef之外时,它工作于

这是因为您从未执行过mine函数,所以textVar变量从未存在过。您可以在函数之外创建变量。

from tkinter import *
root = Tk()
root.title('Miner v1.0')
root.geometry('400x240')
textVar = StringVar()
def mine():
textVar.set('Text')
miningButton = Button(root, text='Mine', command=mine)
miningButton.pack()
mainLabel = Label(root, textvariable=textVar)
mainLabel.pack()
root.mainloop()

感谢Nurqm,我有了答案:

from tkinter import *
root = Tk()
root.title('Miner v1.0')
root.geometry('400x240')
textVar = StringVar()
def mine():
textVar.set('Text')
miningButton = Button(root, text='Mine', command=mine)
miningButton.pack()
mainLabel = Label(root, textvariable=textVar)
mainLabel.pack()
root.mainloop()```

最新更新