Python 尝试将图像设置为第二个窗口时出现pyimage4错误
我正在尝试将图像设置为我的第二个tkinter窗口,当我单击按钮时,该窗口将打开Python 尝试将图像设置为第二个窗口时出现pyimage4错误,python,python-3.x,image,user-interface,tkinter,Python,Python 3.x,Image,User Interface,Tkinter,我正在尝试将图像设置为我的第二个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 =
但它显示错误
_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")
只需将
window=Tk()
更改为window=Toplevel()
。出现错误的原因是因为有两个Tk()
实例正在运行,所以运行的Tk()
实例不应超过1个。因此,将其替换为Toplevel()
将解决此问题
提示:
- 由于图像将被垃圾收集,因此此处将出现另一个没有显示图像的问题。要解决此问题,您必须保持对图像的引用,方法是在函数顶部说
,或者说global photo
。说出这两个选项之一将修复错误panel2.image=photo
- 解决方案1:
- 解决方案2:
干杯现在没有错误,谢谢,但2号仍然没有图像window@Robin我更新了答案。如果您能将其标记为答案,将不胜感激谢谢,我是stackoverflow的新手,请告诉我如何提高您的分数
def new_window():
global photo
....
...
photo = ImageTk.PhotoImage(image_new)
panel2 = Label(window, image=photo)
panel2.image = photo
panel2.pack()
...