У меня есть такой код :

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, она работает

Scaffus

Ответов: 2

Ответы (2)

Это потому, что вы никогда не выполняли функцию 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()```

2022 WebDevInsider