【问题标题】:pyimage4 error while trying to set image to 2nd window尝试将图像设置为第二个窗口时出现pyimage4错误
【发布时间】:2020-12-27 04:07:16
【问题描述】:

我正在尝试将图像设置为我的第二个 tkinter 窗口,当我单击按钮时打开该窗口
但它显示错误
_tkinter.TclError:图像“pyimage4”不存在

def new_window():
    if(user.get()==username and passw.get()==password):
        window= Tk()
        window.geometry("%dx%d+0+0"%(w,h))
        image_new = Image.open("E:\\schoolmng\\try1.jpg")
        photo = ImageTk.PhotoImage(image_new)
        panel2 = Label(window, image=photo)
        panel2.pack()
    else:
        messagebox.showinfo("error","wrong password or username")

【问题讨论】:

    标签: python python-3.x image user-interface tkinter


    【解决方案1】:

    只需将window = Tk() 更改为window = Toplevel()。出现错误的原因是因为有两个Tk() 的实例正在运行,应该不会超过1 个Tk() 的实例正在运行。因此,将其替换为 Toplevel() 将解决此问题。

    提示:

    • 你会得到一个额外的问题,这里没有显示图像,因为图像将被垃圾收集,要解决这个问题,你必须保持对图像的引用,或者在函数顶部说 global photopanel2.image = photo .说其中任何一个都可以解决错误。

    • 解决方案 1:

    def new_window():
        global photo
    ....
    
    • 解决方案 2:
    ...
    photo = ImageTk.PhotoImage(image_new)
    panel2 = Label(window, image=photo)
    panel2.image = photo
    panel2.pack()
    ...
    

    希望您的问题得到解决,如果还有错误,请告诉我。

    干杯

    【讨论】:

    • 现在没有错误,谢谢,但第二个窗口仍然没有图像
    • @Robin Ive 更新了答案。如果您能将其标记为答案,将不胜感激
    • 谢谢它的工作,我是stackoverflow的新手,所以请告诉我如何增加你的积分
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 2016-04-29
    • 1970-01-01
    • 2010-11-23
    相关资源
    最近更新 更多