Изменение значений на основе переменных в Python - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь заставить текст перейти от «0», когда поле не было нажато, к «1», когда оно было нажато.Тем не менее, переменная, которую я имею, устанавливает текст как «0» до того, как он будет нажат, и поэтому, когда щелкает поле и переменная изменяется, текст не изменяется.Вот код

from tkinter import *

root = Tk()
height = 500
width = 500
canvas = Canvas(width=width, height=height)
root.title = "Test"


def click(event):
    item = canvas.find_closest(event.x, event.y)
    tags = canvas.gettags(item)

    if tags[0] == 'rect1':
        canvas.itemconfig(item, fill="blue")
        click.value = '1'


click.value = '0'

text = click.value


canvas.create_rectangle(100, 100, 400, 400, tags='rect1', fill='white')

canvas.create_text(200, 300, font='Times 50', text=text, anchor=E)


canvas.pack()
canvas.bind("<Button-1>", click)
canvas.mainloop()

1 Ответ

0 голосов
/ 21 ноября 2018

Вы не можете просто установить переменную и ожидать, что холст изменится.Вам нужно вызвать itemconfigure для текстового объекта, чтобы изменить текст точно так же, как вы вызываете itemconfigure для прямоугольника, чтобы изменить цвет.

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