Python tkinter图标可以使用哪些文件格式?
我知道这可能是显而易见的,但在tkinter你可以设置一个图标,但我发现很难找到一个。我只是想知道您是否必须为文件使用Python tkinter图标可以使用哪些文件格式?,python,python-2.7,tkinter,.ico,Python,Python 2.7,Tkinter,.ico,我知道这可能是显而易见的,但在tkinter你可以设置一个图标,但我发现很难找到一个。我只是想知道您是否必须为文件使用.ico格式,或者是否有方法使用.png或.jpeg文件 目前我有 window = Tkinter.Tk() window.title("Weclome!") window.geometry("200x300") window.wm_iconbitmap("Icon.ico") window.configure(background = "Black") 这就是我的全部设置,
.ico
格式,或者是否有方法使用.png
或.jpeg
文件
目前我有
window = Tkinter.Tk()
window.title("Weclome!")
window.geometry("200x300")
window.wm_iconbitmap("Icon.ico")
window.configure(background = "Black")
这就是我的全部设置,我只想了解第4行:
window.wm_iconbitmap("Icon.ico")
感谢您回答我的问题,但很抱歉,我没有花更多的时间研究这个问题,而只是在这里提问。让我们从阅读文档开始!
位于的文档说明了以下关于iconbitmap(位图=无)
设置或获取此窗口图标化时要使用的图标位图。某些窗口管理器(包括Windows)会忽略此方法
请注意,此方法只能用于显示单色图标。要显示颜色图标,请将其放入标签
小部件中,并改用iconwindow
方法显示
与wm\u iconbitmap
相同
下面是关于iconwindow(window=None)
的文档:
设置或获取图标窗口,以在该窗口图标化时用作图标。某些窗口管理器(包括Windows)会忽略此方法
与wm\u iconwindow
相同
窗口
The new icon window. If omitted, the current window is returned.
根据这一点,它实际上与(至少)Python 2.7、3.5和3.6中的tkinter
同名方法的docstring说的是相同的:
wm\u iconbitmap(自身,位图=无,默认值=无)
将图标化小部件的位图设置为bitmap
。如果未给出位图,则返回位图
在Windows下,default
参数可用于为小部件和未明确设置图标的任何子代设置图标default
可以是.ico
文件的相对路径(例如:root.iconbitmap(default='myicon.ico')
)。有关更多信息,请参阅Tk文档
下面是原始的Tk文档:
如果指定了位图,那么它将以Tk接受的标准形式命名位图(有关详细信息,请参阅手册条目)。该位图被传递到窗口管理器,以显示在窗口的图标中,该命令返回一个空字符串。如果为位图
指定了空字符串,则将取消窗口
的任何当前图标位图。如果指定了bitmap
,则命令返回空字符串。否则,它将返回与窗口
关联的当前图标位图的名称,如果窗口
没有图标位图,则返回空字符串
根据我对Tcl
的理解,这里的window
是您的顶级窗口(可以是Tk
或toplevel
)
在Windows操作系统上,支持附加标志:
wm iconbitmap window ?-default? ?image?
如果给出了-default
标志,则该图标将应用于尚未应用其他特定图标的所有顶级窗口(现有和未来)
除位图图像类型外,还接受包含有效Windows图标的任何文件的完整路径规范(通常为.ico
或.icr
文件),或shell已为其指定图标的任何文件
Tcl将首先测试文件是否包含图标,然后测试它是否有指定的图标,最后,如果失败,测试位图
到目前为止,答案不是很具体,因此很有帮助
我的结论 当窗口图标化时,应使用
iconbitmap
函数(或方法,取决于编程语言)为窗口设置图像
在Windows上,您可以将完整路径规范设置为任何包含也被接受的文件(通常是.ico
或.icr
文件),或shell已为其指定图标的任何文件
那么哪些图像是位图呢?
xbm
格式,对彩色图像使用类似的xpm
。
xbm
图像作为图标,它可能无法在您的平台上工作,因为xbm
是X窗口系统的位图
注意:即使回答了这个问题,您仍然可能会遇到问题
其他可能有用的文章
# set application icon
icondir = os.path.join(os.path.dirname(__file__), 'Icons')
if system() == 'Windows':
iconfile = os.path.join(icondir, 'idle.ico')
root.wm_iconbitmap(default=iconfile)
else:
ext = '.png' if TkVersion >= 8.6 else '.gif'
iconfiles = [os.path.join(icondir, 'idle_%d%s' % (size, ext))
for size in (16, 32, 48)]
icons = [PhotoImage(master=root, file=iconfile)
for iconfile in iconfiles]
root.wm_iconphoto(True, *icons)
我使用该软件在idlelib文件夹中的所有文件中搜索.ico和.png
因此,最后我设法通过以下两行代码使窗口图标工作(在TkVersion>=8.6的GNU linux上):
icon = PhotoImage(master=root, file='icon.png')
root.wm_iconphoto(True, icon)
我将图标直接放在我的应用程序文件夹中
从空闲代码来看,在Windows上似乎仍然只支持.ico文件。我意外地回答了我自己要找的问题。然而,尽管这里提出的问题略有不同,我认为我的回答仍然很有用。