В общем такая ситуация. Грубо говоря сделал редактор юнита, можно выбрать в кольчуге или латах будет, оружие какое будет носить. Когда это все выбрал, то программа берет заранее нарисованные картинки и склеивает их. Склеиваю с помощью PIL. И все работает вплоть до момента когда эту картинку надо обновить в Directlabel. А он ее меняет только в первый раз, во все остальные разы он ничего не делает. Причем я пробовал все, я удалял полностью переменную создавал новую, разными способами указывал и .setImage, и label['image'], и напрямую setImage(self.pictureName), и через load.texture, с OnsreenImage та же фигня. Причем склейка точно работает правильно, потому что картинка итоговая сохраняется в корень и там все правильно. Но эта картинка не обновляется в Directlabel.
Вот объявляю DirectLabel в функции когда создается юнит
Код
self.pictureName = str(name) + '.png'
self.pictureSoldier = DirectLabel(image='Peasant.png',
pos=(-1, 0, 0.4), scale=0.5, relief=None,
parent=self.mainFrame)
self.pictureSoldier.setTransparency(True)
И вот часть кода которая почему то не работает.
Код
def newPicture(self):
if len(self.soldier.clothedAmmu) != 0:
self.img1 = Image.open(self.soldier.ammunition[self.soldier.dictAmm[self.soldier.clothedAmmu[0]]][7])
if len(self.soldier.clothedWeapon) != 0 and self.soldier.clothedWeapon[0] != '':
self.img2 = Image.open(self.soldier.ammunition[self.soldier.dictAmm[self.soldier.clothedWeapon[0]]][7])
self.img1.paste(self.img2, (0, 0), self.img2)
if len(self.soldier.clothedWeapon) > 1 and self.soldier.clothedWeapon[1] != '':
self.img2 = Image.open(self.soldier.ammunition[self.soldier.dictAmm[self.soldier.clothedWeapon[1]]][7])
self.img1.paste(self.img2, (0, 0), self.img2)
self.img1.save(self.pictureName)
self.pictureSoldier.setImage(self.pictureName)
self.switchBetweenFrame()
Вот так выглядит сначала. Выбираем амуницию и выберем кольчугу.


Картинка поменялась, параметры все тоже поменялись. А теперь дадим ему меч и щит иии характеристики поменялись, картинка нет.

Но в корне картинка правильно построенная, со щитом и мечом. В чем может быть дело? Он переменную эту резервирует где то в кэше и ее только использует?