tkinter GUI - изображение метки не показывается, но все еще там (вроде) - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь случайным образом показать кубик в графическом интерфейсе tkinter, но он не работает должным образом.

from tkinter import *
from random import choice

def change_pic():

    die1 = PhotoImage(file=("dice-1.png"))
    die2 = PhotoImage(file=("dice-2.png"))
    die3 = PhotoImage(file=("dice-3.png"))
    die4 = PhotoImage(file=("dice-4.png"))
    die5 = PhotoImage(file=("dice-5.png"))
    die6 = PhotoImage(file=("dice-6.png"))

    faces=[die1, die2, die3, die4, die5, die6]
    label.config(image=choice(faces))
    label.grid(row=1, column=1)




root = Tk()

label = Label(root)
label.grid(row=1, column=1)


change_button  = Button(root, text="change", command =change_pic)
change_button.grid(row=1, column=2)
root.mainloop()
  • это мой код

вместо того, чтобы показывать изображение кристалла, оно просто показывает место, где оно должно быть, и его размер.

Я пробовал много вещей, ноЯ не могу это исправить.пожалуйста, помогите.

1 Ответ

0 голосов
/ 08 декабря 2018

Вы выбираете изображение для метки внутри функции, которая помещает изображение в пространство имен функции.Когда функция заканчивается, ссылка на изображение является сборщиком мусора.

Это можно исправить, сохранив ссылку на изображение в виджете метки:

faces=[die1, die2, die3, die4, die5, die6]
img = choice(faces)
label.config(image=img)
label.image = img   # Save a reference to the image
label.grid(row=1, column=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...