(я уже читал много других постов по этому поводу, но они, кажется, не помогают мне (или я просто не понимаю их))
У меня есть функция Add (), в которой другая функция Вызывается Grid (), который создает файл Grid.png и сохраняет его на моем рабочем столе. Эта функция Add () вызывается несколько раз (с помощью кнопки), а вместе с ней и функция Grid (). Вот небольшой фрагмент кода:
Width = 700
Height = 700
def __init__(self,**kwargs):
super(Drw, self).__init__(**kwargs)
self.CellCount = 1
time.sleep(0.5)
self.cellAdd= int(input("\nCells to add: "))
self.bg = ""
with self.canvas:
self.add = Button(text = "add", font_size =40, pos = (700,300))
self.sub = Button(text="sub", font_size=40, pos=(700, 400))
self.add.bind(on_press = self.Add)
self.sub.bind(on_press= self.Sub)
self.add_widget(self.sub)
self.add_widget(self.add)
def Add(self, instance):
self.CellCount += self.cellAdd
Grid(self.CellCount, self.Width, self.Height)
with self.canvas:
self.bg = Rectangle(source= r"C:\Users\Max\Desktop\Grid.png", pos=(0,0), size= (self.Width, self.Height))
self.L = Label(text=str(self.CellCount)+" columns", pos=(500, 300))
В первый раз, когда я нажимаю кнопку «Добавить», он делает то, что должен, поэтому вызывается Add () и, в свою очередь, вызывается Grid (). и создает новое изображение на моем рабочем столе. Затем создается «bg» (фон) и изображение отображается правильно. Это работает только 1 раз, однако. После этого, когда я продолжаю нажимать кнопку «Добавить», ничего не происходит, даже несмотря на то, что файл Grid.png меняется на моем рабочем столе каждый раз, когда я нажимаю «Добавить». Изображение просто не обновляется как-то. Путь всегда остается неизменным, поэтому я не понимаю, почему он не меняет изображение на новое?
Я уже пытался вручную обновить источник с помощью
self.bg.source = r"C:\Users\Max\Desktop\Grid.png"
но это ничего не делает. Я довольно новичок в Kivy, поэтому я прошу прощения, если это часто спрашивают.
Спасибо за чтение!
РЕДАКТИРОВАТЬ Я исправил это так:
def Add(self, instance):
self.CellCount += self.cellAdd
Grid(self.CellCount, self.Width, self.Height)
with self.canvas:
self.canvas.clear()
self.bg =Image(source= r"C:\Users\Max\Desktop\Grid.png", pos=(0,0), size= (self.Width, self.Height))
self.bg.reload()
self.L = Label(text=str(self.CellCount)+" columns", pos=(500, 300))
Я до сих пор не знаю, почему Cache.remove () не работает, как мне кажется логичным, но по крайней мере. reload () работает достаточно хорошо. Спасибо за ваши ответы!