tkinter照片不存在?

2024-10-01 15:44:58 发布

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

from tkinter import *

root = Tk()

photo = PhotoImage(file='blueface.png')
label = Label(root, image=photo)
label.pack()

root.mainloop()

形象脸谱.png与此.py脚本位于同一目录中,但当我运行它时,我收到以下错误:

^{pr2}$

Tags: fromimageimportpngtkinterrootlabelpack
2条回答

图像与脚本在同一个文件夹中并不重要,当您像那样调用文件而不使用路径时,python假定它位于启动脚本时正在处理的同一个文件夹中。例如,如果脚本和图像都在temp文件夹中,并且您按如下方式启动脚本:

python temp/script.py

解释器没有意识到blueface.png也在temp中,而是在您所在的文件夹中查找它,在本例中是{}的父文件夹

您应该做的是,要么使用绝对路径,要么使用__file__先获得完整的脚本地址。例如:

^{pr2}$

或者使用当前脚本的位置来构建图像的路径:

import os
base_folder = os.path.dirname(__file__)
image_path = os.path.join(base_folder, 'blueface.png')
photo = PhotoImage(file=image_path)

旧版本的tkinter无法处理。png就那么好了。尝试将文件设为.gif。或使用PIL的照片图像:

import tkinter as tk
from PIL import Image, ImageTk

root = tk.Tk()

photo = ImageTk.PhotoImage(Image.open('blueface.png'))
label = tk.Label(root, image=photo)
label.pack()

root.mainloop()

相关问题 更多 >

    热门问题