Значение переменной не меняется? (Python) - PullRequest
0 голосов
/ 08 июня 2019

Поэтому я пытаюсь поместить переменную в метки x ..., чтобы при изменении переменной метка начала двигаться.

Но проблема в том, что переменная не меняет своего значения, а остается на «0», когда я нажимаю кнопку «Далее»

Нужна помощь, пожалуйста:

import tkinter as tk

from docx import Document

HEIGHT = 500
WIDTH = 600

root = tk.Tk()
canvas = tk.Canvas(root, height=HEIGHT, width=WIDTH)
canvas.pack()

nextt=tk.IntVar()
nextt=0 #setup the nextt variable

label1 = tk.Label(text='example:')
label1.place(x=90+nextt,y=50) #put the variable here to affect position

def next2():
    nextt=300

button2 = tk.Button(text="Next", font=40, command=next2)
button2.place(x=230, y=440) 
#when pressing this button,variable nextt should change to 300, but it doesnt

root.mainloop()

Я уже пробовал с nextt.set = 300 и / или nextt.get (), все возможные комбинации ...

1 Ответ

0 голосов
/ 08 июня 2019

nextt в функции next2 - локальная переменная, вместо этого вы можете попробовать разместить метку внутри функции:

def next2():
    label1.place(x = 390, y = 50)

Если вы хотите place позже, используйте nextt как глобальная переменная (кстати, не очень хорошее решение):

def next2():
    global nextt
    nextt = 300
# more code
# ...
label1.place(x = 90 + nextt, y = 50)

Простое изменение nextt не приведет к автоматическому размещению метки, вам придется сделать это снова в другом месте кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...