【问题标题】:trying to change default icon in tkinter Tk() at the top of the "window"试图更改“窗口”顶部的 tkinter Tk() 中的默认图标
【发布时间】:2021-04-13 06:01:42
【问题描述】:

不知道为什么我会收到一个错误,我按照 6 个指南制作 .ico 文件并逐字复制 两个教程尝试所有类型的相对非相对文件路径组合

from tkinter import *
from PIL import ImageTk, Image


root = Tk()
root.title('Local Host Store')
root.geometry("500x500")

root.iconbitmap('pleasegod1.ico')

#mainloop

root.mainloop()

                        <ERROR CODE BELOW>
[Running] python -u "c:\Users\Eric\Desktop\LocalHostStore\main.py"
Traceback (most recent call last):
  File "c:\Users\Eric\Desktop\LocalHostStore\main.py", line 10, in <module>
    root.iconbitmap('pleasegod1.ico')
  File "C:\Users\Eric\AppData\Local\Programs\Python\Python38\lib\tkinter\__init__.py", line 2071, in 
wm_iconbitmap
    return self.tk.call('wm', 'iconbitmap', self._w, bitmap)
_tkinter.TclError: bitmap "pleasegod1.ico" not defined

【问题讨论】:

  • 你的项目结构到底是什么?
  • root.iconbitmap(...)之前执行print(os.getcwd())(需要import os),看看控制台是否打印了预期的路径。
  • 尝试提供整个路径
  • 在同一个目录下新建一个文件,然后import osos.startfile('pleasegod1.ico'),看看python能不能打开这个文件。也尝试给它一个完整的路径。您也可以通过说print(os.path.exists('pleasegod1.ico')) 来检查文件是否存在
  • 在 html xD java 程序中打开了相同的文件,可用作 tkinter 小部件中的照片,但此时不值得我花时间:/

标签: python tkinter filepath .ico


【解决方案1】:

尝试输入整个图片路径或将图片放在同一个代码文件中,并确保图片类型为.ico

【讨论】:

    【解决方案2】:

    替代解决方案是使用Tk.iconphoto() 方法而不是Tk.iconbitmap()。相反,root.iconphoto(True,PhotoImage(file="C:/Users/Eric/Desktop/GuiFlowerIcon.png")) 工作得很好,我想它只是没有使用 .icon 文件。对于我的用例,对Tk.iconbitmap() 进行故障排除效率不高。这只是将 tkinter 窗口顶部的图标从默认的 tkinter 库“商标”图标更改为您自己的自定义图标。 iconphoto 可以是 png。

    旁注:我花了很长时间按照教程创建 .ico 文件,我的文件是 15x15 px 网格在 ms 油漆中保存为位图 24 我认为然后将文件类型转换为 .ico 和 windows 识别它,如果您尝试将大 png 文件更改为 .ico,它实际上不会让您更改文件扩展名......超级奇怪。

    问题仍然可能是它无法将其识别为 .ICO 文件,如果有人有任何技巧来制作 python tkinter 可以识别的 .ico 文件,或者它甚至如何在..c 语言中进行此操作?我希望有一天能解开 tkinter 的包装以及它是如何工作的。

    【讨论】:

      猜你喜欢
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-30
      相关资源
      最近更新 更多