tkinter 题目3 ---- iconbitmap的相对路径
from tkinter import *
root=Tk()
root.iconbitmap("u.ico")
mainloop()
运行后,报错 TclError: bitmap "u.ico" not defined
1、python 安装于 c://Users//高衍龙//AppData//Local//Programs//Python//Python310
2、u.ico 文件保存于 c://Users//高衍龙//AppData//Local//Programs//Python//Python310//Lib//tkinter//u.ico
3、程序中第3句如果使用绝对路径的话,就运行正常 ,如 root.iconbitmap('c://Users//高衍龙//AppData//Local//Programs//Python//Python310//Lib//tkinter//u.ico')
在Tkinter中,iconbitmap()方法用于设置窗口的图标。当使用相对路径时,文件的查找路径是相对于当前工作目录的。因此,如果要使用相对路径来设置图标,需要将相对路径转换为基于当前工作目录的绝对路径。可以使用os模块中的os.path.abspath()方法来实现。
以下是代码示例:
import os
from tkinter import *
root = Tk()
# 获取当前脚本所在目录的绝对路径
script_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接图标文件的相对路径
icon_path = os.path.join(script_dir, "u.ico")
# 设置图标
root.iconbitmap(icon_path)
mainloop()
在上述代码中,os.path.abspath(__file__)返回当前脚本的绝对路径,os.path.dirname()方法返回该路径的目录部分,然后使用os.path.join()方法将图标文件的相对路径拼接到该目录中,得到完整的图标文件路径。最后,将该路径传递给iconbitmap()方法即可设置图标。 isdkz 发表于 2023-5-18 08:58
在Tkinter中,iconbitmap()方法用于设置窗口的图标。当使用相对路径时,文件的查找路径是相对于当前工作目 ...
按照您提供的示例代码,运行报错 ! dragov 发表于 2023-5-18 09:03
按照您提供的示例代码,运行报错 !
相对路径指的是相对于你的项目的路径,而不是你安装python的路径{:7_132:}
你应该将你的ico图片的路径跟你的项目路径放在一起
也就是把图片跟这段代码
from tkinter import *
root=Tk()
root.iconbitmap("u.ico")
mainloop()
的文件放在一个目录上
像这样
这样就运行正常啦{:7_125:}
页:
[1]