【问题标题】:Tkinter not opening an image in new window after clicking a button [duplicate]单击按钮后,Tkinter 未在新窗口中打开图像[重复]
【发布时间】:2020-10-29 01:32:24
【问题描述】:

所以我是 Tkinter 的新手,我想我会写一个从根窗口开始的程序,只有一个按钮,当你点击那个按钮时,会出现一个新窗口,它也会打开一个特定的图像作为关闭该窗口的退出按钮。 root 中的按钮有效,新窗口确实打开,新窗口中的退出按钮也有效,但图像不存在?它只是在应该有该图像的空间上留空。

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()

图片确实存在

【问题讨论】:

  • 你试过tkinter.mainloop()吗?也许这就是错误。

标签: python tkinter window


【解决方案1】:

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

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()

【讨论】:

    猜你喜欢
    • 2015-09-09
    • 2013-02-07
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多