为啥我会收到 tkinter.TclError: bitmap not defined 错误?

Posted

技术标签:

【中文标题】为啥我会收到 tkinter.TclError: bitmap not defined 错误?【英文标题】:Why do I get tkinter.TclError: bitmap not defined error?为什么我会收到 tkinter.TclError: bitmap not defined 错误? 【发布时间】:2021-03-05 19:06:45 【问题描述】:
from tkinter import *
from configparser import ConfigParser
from tkinter import messagebox
import requests

if weather:
    location_lbl['text'] = ', '.format(weather[0], weather[1])
    image_lbl['bitmap'] = 'icons/.png'.format(weather[4])
    temp_lbl['text'] = ':.2f°C, :.2f°F'.format(weather[2], weather[3])
    weather_lbl['text'] = weather[5]

我收到了这个错误:

_tkinter.TclError: bitmap "icons/50d.png" not defined

请帮帮我。

【问题讨论】:

希望将以下内容标记为答案。 【参考方案1】:

这是一个误解,image_lbl['bitmap'] 不是用来显示 png 文件或你加载的图像文件,它更像是显示加载到 tkinter 中的位图:

image_lbl['bitmap'] = 'error' #or questionhead, warning, gray50, etc.

如果要加载 png 图片,请使用tk.PhotoImage,例如:

img = tk.PhotoImage(file='icons/.png'.format(weather[4]))
image_lbl['image'] = img

虽然值得注意的是,要使用jpeg,必须使用一个名为PIL 的附加模块。

看看这些有用的链接:

Bitmaps on tkinter

PhotoImage on tkinter

【讨论】:

我强烈建议避免在所有现代界面上使用bitmap 属性。这是 30 年前做事方式的遗留物,至少 25 年来一直与功能无关。 @DonalFellows 我同意,它很陈旧。 这将消除错误但运行时不显示图像 @SuprabhatKhot 您必须保留对图像的引用,阅读我与图像链接的链接。此 Q 用于您没有显示任何其他图像的 Q。 @CoolCloud 好的,我会检查,谢谢顺便说一句

以上是关于为啥我会收到 tkinter.TclError: bitmap not defined 错误?的主要内容,如果未能解决你的问题,请参考以下文章

tkinter.TclError:图像“pyimage3”不存在

tkinter.TclError:没有显示名称,也没有 $DISPLAY 环境变量 python

tkinter、python 和 seaborn 的问题:_tkinter.TclError: no display name and no $DISPLAY environment variable

Python系列_tkinter.TclError: no display name and no $DISPLAY environment variable

python3 tkinter报错:_tkinter.TclError: cannot use geometry manager pack inside . which already has sla

markdown pyplot _tkinter.TclError:没有显示名称,没有$ DISPLAY环境变量