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

2023-12-02

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

目前我有

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

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

window.wm_iconbitmap("Icon.ico") 

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


让我们从阅读文档开始吧!

文档位于effbot.org说以下有关iconbitmap(bitmap=None)

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

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

Same as wm_iconbitmap.

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

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

Same as wm_iconwindow.

window

The new icon window. If omitted, the current window is returned.

根据这个其他文件,它实际上与同名方法的文档字符串说了同样的事情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. If bitmap指定后,该命令返回一个空字符串。否则,它返回与关联的当前图标位图的名称window,或者一个空字符串,如果window没有图标位图。

从我的理解来看Tcl, here window是你的顶层窗口(或者是一个实例Tk or Toplevel).

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

wm iconbitmap window ?-default? ?image?

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

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

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

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


我的结论

The iconbitmap应该使用函数(或方法,取决于编程语言)来设置bitmap当窗口被图标化时图像到窗口。

在 Windows 上,您可以为任何包含以下内容的文件设置完整路径规范:有效的 Windows 图标也被接受(通常.ico or .icr文件),或者 shell 为其分配了图标的任何文件。

那么哪些图像是位图呢?

  1. xbm and xpm (for X窗口系统)

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

    The X窗口系统使用类似的xbm格式为黑与白图像,以及xpm对于彩色图像。 ...

  2. BMP 文件格式

  3. Netpbm 格式

  4. .wbmp

  5. ILBM

    ...

所以大多数位图文件格式都是not跨平台!换句话说,如果有人告诉你使用xbm图标的图像,它可能无法在您的平台上工作,因为xbm是位图X窗口系统.

Note:即使在这个答案之后,您可能仍然遇到问题!


其他可能有用的文章

  • 设置窗口图标
  • tkinter TclError:读取位图文件时出错
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tkinter 图标可以使用哪些文件格式? 的相关文章

  • 如何收集列表、字典等中重复计算的结果(或制作修改每个元素的列表的副本)?

    There are a great many existing Q A on Stack Overflow on this general theme but they are all either poor quality typical
  • 如何限制 sympy FiniteSet 包含符号

    我对 sympy 还很陌生 我尝试使用 linsolve 求解线性方程组 这产生了一个可以用以下两行重现的解决方案 d symbols d solution sets FiniteSet d 1 d 4 d 5 d 我的解决方案遵循限制 即
  • 如何打印没有类型的defaultdict变量?

    在下面的代码中 from collections import defaultdict confusion proba dict defaultdict float for i in xrange 10 confusion proba di
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • 在 NumPy 中获取 ndarray 的索引和值

    我有一个 ndarrayA任意维数N 我想创建一个数组B元组 数组或列表 其中第一个N每个元组中的元素是索引 最后一个元素是该索引的值A 例如 A array 1 2 3 4 5 6 Then B 0 0 1 0 1 2 0 2 3 1 0
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • Pandas Dataframe 中 bool 值的条件前向填充

    问题 如何转发 fill boolTruepandas 数据框中的值 如果是当天的第一个条目 True 到一天结束时 请参阅以下示例和所需的输出 Data import pandas as pd import numpy as np df
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • Nuitka 未使用 nuitka --recurse-all hello.py [错误] 编译 exe

    我正在尝试通过 nuitka 创建一个简单的 exe 这样我就可以在我的笔记本电脑上运行它 而无需安装 Python 我在 Windows 10 上并使用 Anaconda Python 3 我输入 nuitka recurse all h
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • 在 Python 类中动态定义实例字段

    我是 Python 新手 主要从事 Java 编程 我目前正在思考Python中的类是如何实例化的 我明白那个 init 就像Java中的构造函数 然而 有时 python 类没有 init 方法 在这种情况下我假设有一个默认构造函数 就像
  • 协方差矩阵的对角元素不是 1 pandas/numpy

    我有以下数据框 A B 0 1 5 1 2 6 2 3 7 3 4 8 我想计算协方差 a df iloc 0 values b df iloc 1 values 使用 numpy 作为 cov numpy cov a b I get ar
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data

随机推荐