У меня возникли проблемы преобразование моего PIL изображения в Tkinter изображение, вот мой класс: неPIL изображение для Tkinter не делает, если переменная PhotoImage не является глобальной
class GameText():
def __init__(self, parent, xPos, yPos, text, tag="default"):
global drawTex
self.parent = parent
self.xPos = xPos
self.yPos = yPos
self.text = str(text)
self.tag = tag
image = Image.new("RGBA", (400, 400), None)
draw = ImageDraw.Draw(image)
draw.text((0, 0), self.text, font=font, fill="white")
del draw
drawTex = ImageTk.PhotoImage(image)
self.image = self.parent.create_image(self.xPos, self.yPos, image=drawTex, tag=self.tag)
отображается на всех, если drawTex ISN Нет изображения 't global, и даже если это так, отображается только одно изображение, если бы я должен был создать эти два объекта, появлялось бы только последнее.
self.test1 = GameText(self, 300, 300, "ab")
self.test2 = GameText(self, 300, 300, "hi")
Почему drawTex должен быть глобальным, и почему отображается только последнее изображение?
Что вы хотите сказать? –
Почему drawTex должен быть глобальным, и почему отображается только последнее изображение? (Также отредактировал его в) – Eykar
, потому что без него 'drawTex' является локальной переменной, которая получает сбор мусора, когда метод возвращается. –