尝试将图像设置为第二个窗口时出现pyimage4错误

2024-06-16 11:52:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将图像设置为我的第二个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")

Tags: 图像imagenewgettkinterdef错误username
1条回答
网友
1楼 · 发布于 2024-06-16 11:52:34

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

提示:

  • 您将遇到一个额外的问题,这里没有显示图像,因为图像将被垃圾收集,要解决这个问题,您必须保持对图像的引用,或者在函数顶部说global photo,或者说panel2.image = photo。说出这两个选项之一将修复错误

  • 解决方案1:

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

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

干杯

相关问题 更多 >