我有这个代码:
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
,它说它是未定义的。但当textVar
在def
之外时,它工作于
这是因为您从未执行过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()```