Tkinter单击按钮后未在新窗口中打开图像



所以我是Tkinter的新手,我想我应该写一个从根窗口开始的程序,只有一个按钮,当你点击那个按钮时,会出现一个新窗口,打开一个特定的图像,还有一个关闭该窗口的退出按钮。根目录中的按钮工作,新窗口打开,新窗口中的退出按钮也工作,但图像不在那里?它只是在应该有那个图像的地方留下空白。

from tkinter import *
from PIL import ImageTk, Image
root = Tk()
root.title("Creating New Windows")
root.iconbitmap("D:/de_clutter/comdes/tkinter/images/__icon_test.ico")
def WINDOWOPEN():
top = Toplevel()
img = ImageTk.PhotoImage(Image.open("D:/de_clutter/comdes/tkinter/images/3l3i39em1bu51_256x256.jpg"))
lbl = Label(top, image = img).pack()
btn = Button(top, text="Quit", command=top.destroy).pack()
return
openWindowButton = Button(root, text = "Open Image", command = WINDOWOPEN).pack()

mainloop()

图像确实存在btw

您需要保留引用。要做到这一点,您需要使用小部件对象,这意味着您不能将布局与定义放在同一行(无论如何都不应该这样做(。试试这个:

def WINDOWOPEN():
top = Toplevel()
img = ImageTk.PhotoImage(Image.open("D:/de_clutter/comdes/tkinter/images/3l3i39em1bu51_256x256.jpg"))
lbl = Label(top, image = img)
lbl.pack()
lbl.image = img # keep the image reference
btn = Button(top, text="Quit", command=top.destroy)
btn.pack()

最新更新