在下面的代码中,我尝试使用Canvas将两个图像放在两个单独的窗口框架上
PANEL_HEIGHT = 440
PANEL_WIDTH = 304
BKG_IMG = "./backgrounds/Wireframe- welcome screen – 1.png"
MANAGE_ACC_BKG_IMG = "./backgrounds/Wireframe- welcome screen – 1.png"
class window1:
def __init__(self):
self.panel = Tk()
self.panel.geometry(f"{PANEL_WIDTH}x{PANEL_HEIGHT}")
self.canvas = Canvas(self.panel,width=2*PANEL_WIDTH, height=2*PANEL_HEIGHT)
canvas = self.canvas
img = PhotoImage(file=BKG_IMG)
canvas.create_image(PANEL_WIDTH,PANEL_HEIGHT,image=img)
canvas.place(x=-(PANEL_WIDTH/2),y=-(PANEL_HEIGHT/2))
class window2:
def __init__(self):
self.panel = Tk()
self.panel.geometry(f"{PANEL_WIDTH}x{PANEL_HEIGHT}")
self.canvas = Canvas(self.panel, width=2 * PANEL_WIDTH, height=2 * PANEL_HEIGHT)
canvas = self.canvas
img = PhotoImage(file=MANAGE_ACC_BKG_IMG)
canvas.create_image(PANEL_WIDTH, PANEL_HEIGHT, image=img)
canvas.place(x=-(PANEL_WIDTH / 2), y=-(PANEL_HEIGHT / 2))
window1()
window2()
调用这两个类时,我得到“image‘pyimage2’不存在”错误
两个文件的绝对路径都是
D:\pyAut\pythonBootCamp\backgrounds\manage\u acc\u ui\u bkg.png D:\pyAut\pythonBootCamp\main.py
有人能告诉我如何完成这项任务吗
希望您对提供的信息感到满意
首先
tkinter
的PhotoImage
不支持.png
格式,它只支持gif
,ppm/pgm
格式。如果要使用
.png
格式,则需要使用PIL库。然后,我认为在关闭了
window1
和window2
实例之后,您的映像完全被浪费了。因此,您需要在img之前添加
self
。另外,您正在呼叫
Tk()
两次,这是一个问题。最后,您在两个类中使用了相似的名称,这是不好的。
因此,毕竟编辑您的代码看起来是这样的
让我知道它是否有效
您已经创建了Tk()两次:self.panel=Tk()避免这样做。 将self.panel=Tk()移动到外部以共享:panel=Tk()
请尝试一下:
相关问题 更多 >
编程相关推荐