Изображение и метки не появятся в Tkinter - PullRequest
0 голосов
/ 23 февраля 2020

Я хотел создать меню конфигурации, в котором пользователь мог бы выбирать свои языковые параметры и разрешение, с которым будет работать игра. Однако метки для выбранного языка и изображения, которое должно отображаться внизу, вообще не отображаются.

Метка языка:

#Langauge Radio Buttons
Langlabel = Label(ConfigWindow, textvariable="Languages")
EngButton = Radiobutton(ConfigWindow, text = "English",variable = EngSelect, value = 1)
JapButton = Radiobutton(ConfigWindow, text = "Japanese", variable = JapSelect, value = 1)
#Buton Placements
Langlabel.place(x = 100,y = 20)
EngButton.place(x = 100,y = 50)
JapButton.place(x = 180,y = 50)
Langlabel.pack()

Изображение:

#Game Image
TestImage = ImageTk.PhotoImage(Image.open("TestMap.png"))
canvas.create_image(x = 100, y = 100, anchor=NW, image=TestImage)

ConfigWindow.mainloop()

Заранее спасибо.

1 Ответ

0 голосов
/ 23 февраля 2020

Это происходит потому, что Python мусор собирает изображения, потому что они не имеют на них ссылки. Это можно исправить, присвоив созданные изображения / метки массиву или переменной:

class ConfigWindow:
    images = []
    labels = []

    def setup(self):
        #Langauge Radio Buttons
        Langlabel = Label(ConfigWindow, textvariable="Languages")
        EngButton = Radiobutton(ConfigWindow, text = "English",variable = EngSelect, value = 1)
        JapButton = Radiobutton(ConfigWindow, text = "Japanese", variable = JapSelect, value = 1)
        self.labels.push(Langlabel)
        self.labels.push(EngButton)
        self.labels.push(JapButton)

        #Buton Placements
        Langlabel.place(x = 100,y = 20)
        EngButton.place(x = 100,y = 50)
        JapButton.place(x = 180,y = 50)
        Langlabel.pack()


    def load_images(self):
        TestImage = ImageTk.PhotoImage(Image.open("TestMap.png"))
        self.images.add(TestImage);
        canvas.create_image(x = 100, y = 100, anchor=NW, image=TestImage)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...