Я потратил неловкое количество часов на поиск способа сделать это ... Его проект, над которым я работаю, имеет более ста элементы холста, которые необходимо обновить из текстового файла. Вот простая версия:Python + Tkinter: перерисовать прямоугольник в холсте на основе некоторого значения%
Я хотел бы обновить прямоугольник, нарисованный в элементе холста, когда я нажимаю кнопку. Я нашел очень плохой способ взломать это, что связано с сумасшедшим количеством кода, но я знаю, что должен быть какой-то лучший способ.
from tkinter import *
class MyGUI:
def __init__(self, root):
frame = Frame(root)
frame.pack()
self.BoxFillPercent = 0 # the canvas items get their % fill from this value
self.changeButton = Button(frame, text='SB', command=self.changeRange)
self.changeButton.grid(row=1, column=1)
self.hAA = Canvas(frame, width=35, height=35, bg='light blue')
self.hAA.grid(row=2, column=2)
self.hAA.create_rectangle(0,0,self.BoxFillPercent*35,35, fill="pink")
self.hAA.create_text(15, 15, anchor='center', text='AA')
def changeRange(self):
self.BoxFillPercent = 0.5
# When I push the button change the fill amount to 0.5
? What do I need to add here to make this work ?
root = Tk()
b = MyGUI(root)
root.mainloop()
Я попытался использовать обновление и update_idletasks среди кучи других вещей, но я должен быть что-то отсутствую.
Спасибо за быстрый ответ, вернул меня на правильный путь. Я обнаружил, что мне пришлось называть прямоугольник: self.fAA = self.hAA.create_rectangle (...), а затем использовать coords: self.hAA.coords (self.fAA, ...) ... добавлен ваш блог : D – lessharm