如何使用lab将背景作为图像添加到链接到单个项目的多个窗口

2024-04-24 18:57:05 发布

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

我想添加一个图像作为背景,我的窗口在Tkinter Python是相互链接的按钮使用。默认情况下,当我运行代码时,我的第一个窗口会打开一个图像,当我按下按钮到另一个窗口时,它也会打开,但是当我按下后退按钮到第一个窗口时,它会给我pyimage3 does not exists错误

tkinter.TclError: image "pyimage3" doesn't exist

我尝试了以上链接上发布的解决方案,但没有一个对我有效

from tkinter import *


def win1():

    global window1
    global window2

    def goto2():
        window1.withdraw()
        win2()

    window1=Tk()
    window1.title('Window1')
    window1.geometry('300x300')


    img1=PhotoImage(file='wood.png')
    l1=Label(window1,image=img1,width=160,height=300)

    l1.image = img1

    l1.place(x=0,y=0)


    b=Button(window1,text='go to 2',command=goto2)
    b.pack()
    window1.mainloop()


def win2():
    global window2
    global window1

    def goto1():
        window2.withdraw()
        win1()



    window2=Toplevel()
    window2.title('Window2')
    window1.geometry('300x300')

    img2=PhotoImage(file='for.png')
    l2=Label(window2,image=img2,width=160,height=300)
    l2.image = img2

    l2.place(x=0,y=0)


    b1=Button(window2,text='go to  1',command=goto1)
    b1.pack()
    window2.mainloop()


win1()


错误


File "/usr/lib/python3.7/tkinter/__init__.py", line 2299, in __init__
    (widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: image "pyimage3" doesn't exist

Tags: 图像imagel1链接tkinterdef按钮global
1条回答
网友
1楼 · 发布于 2024-04-24 18:57:05

最好像马蒂诺建议的那样使用不同的方法,但是你的方法也可以做两个小的改变

首先,您不必在使用Toplevel时调用window2.mainloop()

第二,既然你在你的window1上调用了withdraw,就用deiconify()把它召回

def win2():
    global window2
    global window1

    def goto1():
        window2.destroy()
        #win1()
        window1.deiconify()


    window2=Toplevel()
    window2.title('Window2')
    window1.geometry('300x300')

    img2=PhotoImage(file='clear.png')
    l2=Label(window2,image=img2,width=160,height=300)
    l2.image = img2

    l2.pack()


    b1=Button(window2,text='go to  1',command=goto1)
    b1.pack()
    #window2.mainloop()

相关问题 更多 >