我可以为 tkinter 图标使用哪些文件格式?

Rak*_*kkk 3 python tkinter .ico python-2.7

我知道这可能很明显,但是在 tkinter 中你可以设置一个图标,但我发现很难找到一个。我只是想知道您是否必须使用.ico文件的格式,或者是否有使用.png.jpeg文件的方法。

目前我有

window = Tkinter.Tk()
window.title("Weclome!")
window.geometry("200x300")
window.wm_iconbitmap("Icon.ico")
window.configure(background = "Black")
Run Code Online (Sandbox Code Playgroud)

这就是我拥有的整个设置,我只想了解第 4 行:

window.wm_iconbitmap("Icon.ico") 
Run Code Online (Sandbox Code Playgroud)

感谢您回答我的问题,尽管我很抱歉没有花更多时间研究这个问题,而只是在这里提问。

nbr*_*bro 6

让我们从阅读文档开始!

effbot.org 上的文档说明了以下内容iconbitmap(bitmap=None)

设置或获取此窗口图标化时要使用的图标位图。某些窗口管理器(包括 Windows)会忽略此方法。

请注意,此方法只能用于显示单色图标。要显示颜色图标,请将其放入Label小部件并使用iconwindow方法显示它。

一样wm_iconbitmap

所以这里是关于的文档iconwindow(window=None)

当此窗口被图标化时,设置或获取用作图标的图标窗口。某些窗口管理器(包括 Windows)会忽略此方法。

一样wm_iconwindow

window

The new icon window. If omitted, the current window is returned.
Run Code Online (Sandbox Code Playgroud)

根据this other documentation,它实际上与tkinter(至少)Python 2.7、3.5和3.6中的同名方法的文档字符串相同:

wm_iconbitmap(self, bitmap=None, default=None)

将图标化小部件的位图设置为bitmap. 如果没有给出,则返回位图。

在 Windows 下,该default参数可用于为小部件和任何没有明确设置图标的后代设置图标。default可以是.ico文件的相对路径(例如:)root.iconbitmap(default='myicon.ico')。有关更多信息,请参阅 Tk 文档。

所以这是原始的 Tk 文档:

wm iconbitmap window ?bitmap?

如果指定了位图,则它以 Tk 接受的标准形式命名位图(Tk_GetBitmap有关详细信息,请参阅手册条目)。这个位图被传递给窗口管理器以显示在窗口的图标中,并且该命令返回一个空字符串。如果为 指定了空字符串bitmap,则为 取消任何当前图标位图window。如果bitmap指定,则该命令返回一个空字符串。否则,它返回与 关联的当前图标位图的名称,window如果window没有图标位图,则返回一个空字符串。

从我的理解Tcl,这里window是你的顶层窗口(或者实例TkToplevel)。

在 Windows 操作系统上,支持附加标志:

wm iconbitmap window ?-default? ?image?
Run Code Online (Sandbox Code Playgroud)

如果-default给出该标志,则该图标将应用于尚未应用其他特定图标的所有顶级窗口(现有和未来)。

除了位图图像类型之外,还接受包含有效 Windows 图标的任何文件(通常为.ico.icr文件)或外壳为其分配了图标的任何文件的完整路径规范。

Tcl 将首先测试文件是否包含一个图标,然后它是否具有指定的图标,最后,如果失败,则测试位图。

到目前为止还不是很具体,因此有帮助。


我的结论

iconbitmap函数(或方法,根据不同的程序设计语言)应该被用于一个设置位图时图标化窗口图像的窗口。

在 Windows 上,您可以为包含有效 Windows 图标的任何文件(通常.ico.icr文件)或外壳已为其分配图标的任何文件设置完整路径规范。

那么哪些图像是位图呢?

  1. xbmxpm(对于X 窗口系统

    根据我将“位图”链接到上面的维基百科文章

    X Window系统采用了相似xbm的格式黑色和白色图像,xpm彩色图像。...

  2. BMP 文件格式

  3. Netpbm 格式

  4. .wbmp

  5. ILBM

    ...

所以大部分的位图文件格式是不是跨平台!换句话说,如果有人告诉您使用xbm图像作为图标,它可能无法在您的平台上运行,因为X Window Systemxbm是位图。

注意:即使在这个答案之后,您可能仍然有问题!


其他可能有用的文章