【发布时间】:2016-06-04 13:24:25
【问题描述】:
您好,我正在做我需要的工作(从包含图像的 tkinter 窗口)调用另一个包含另一个图像的窗口。我尝试了以下操作:
from tkinter import*
def abrir1():
b =Tk()
imagen = PhotoImage(file= "F2.png")
la = Label(b,image =imagen)
la.pack()
def abrir2():
b =Toplevel()
imagen = PhotoImage(file= "F2.png")
la = Label(b,image =imagen)
la.pack()
a = Tk()
canvas = Canvas(a, bg ="black",width = 512,height =512)
canvas.pack()
imagem = PhotoImage(file = "E2.png")
a1 = canvas.create_image(256,256,image = imagem)
btu1 = Button(a,text ="Abri1!",command = abrir1)
btu1.place(x = 150,y=400)
btu2 = Button(a,text ="Abri2!",command = abrir2)
btu2.place(x = 300,y=400)
但是当我按下第一个按钮 ( btu1 ) 时,它会返回以下错误消息:
_tkinter.TclError: 图像“pyimage2”不存在
当我按下第二个按钮 ( btu2 ) 时不会发生错误但不显示图像,只会创建新窗口;
我尝试了几种方法,包括将 * 与 canvas 和 不使用 canvas* ;
【问题讨论】:
-
* 上的所有问题都应该用英文发布,以便每个人都能理解问题并提供可能的解决方案。
-
问题是您正在创建
Tk的两个实例:a=Tk()和b=Tk()。您只能创建一个实例。 -
是的,我想通了,所以我创建了函数
def abir2():创建了一个Toplevel ( )tkinter 的第二个实例没有问题。如果您能提出另一种方法,我将不胜感激。 -
Suever 我更正了语言。
标签: python tkinter tkinter-canvas toplevel photoimage