Невозможно увидеть изображение в программе Tkinter Python - PullRequest
0 голосов
/ 15 января 2020
topper = Toplevel()
topper.title("2nd Window")
topper.state('zoomed')
my_img = ImageTk.PhotoImage(Image.open("diamond.png"))
my_label = Label(topper, image=my_img, height = 100 , width = 100)
F21 = Frame(topper, borderwidth=83, bg="blue", relief=SUNKEN)
button1 = Button(topper, text="class", command=topper.destroy)
button1.pack()
my_label.pack()

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

1 Ответ

1 голос
/ 15 января 2020

Добро пожаловать в Stackoverflow Shakti!

На будущее - всегда хорошо предоставить Минимальный воспроизводимый пример , чтобы другие могли лучше воспроизвести и понять вашу проблему, чтобы помочь вам! Это также поможет вам понять, где именно происходит ошибка.

Когда вы вызываете Toplevel () из другого окна tkinter, чтобы открыть новое окно, вам нужно будет вызвать "mainl oop ()" на втором окно, а также для отображения изображения - попробуйте мой код с примером изображения и закомментируйте / раскомментируйте строку с

topper.mainloop()

, чтобы увидеть разницу в функциональности.

Адаптированный код:

from tkinter import *
from PIL import Image, ImageTk   # pip install pillow

def show_second_window():
    topper = Toplevel()
    topper.title("2nd Window")
    topper.state('zoomed')
    my_img = ImageTk.PhotoImage(Image.open("t1.png"))
    my_label = Label(topper, image=my_img, height=100, width=100)
    F21 = Frame(topper, borderwidth=83, bg="blue", relief=SUNKEN)
    button1 = Button(topper, text="class", command=topper.destroy)
    button1.pack()
    my_label.pack()

    topper.mainloop()  # <---- this is needed to show the image!


root = Tk()
root.title("1st window")
button = Button(root, text="show second window", command=show_second_window)
button.pack()
root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...