【问题标题】:_tkinter.TclError: bitmap "pyimage2" not defined_tkinter.TclError:位图“pyimage2”未定义
【发布时间】:2015-06-27 03:47:52
【问题描述】:

我想在菜单栏上显示一个图标,所以使用这个information,我编写了这个代码:

img = Image.open("help.png") 
menubar.add_cascade(label="Help",menu=helpmenu,bitmap=ImageTk.PhotoImage(img))

我收到了这个错误:

Traceback (most recent call last):
  File "mine.py", line 67, in <module>
    m.menus(root)
  File "mine.py", line 55, in menus
     menubar.add_cascade(label="Help",menu=helpmenu,bitmap=ImageTk.PhotoImage(img))
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 2699, in add_cascade
    self.add('cascade', cnf or kw)
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 2696, in add
    self._options(cnf, kw))
_tkinter.TclError: bitmap "pyimage2" not defined

如何解决这个问题?

【问题讨论】:

  • 是的,我的意思是 png,我只是打错字了,但是在我的代码中当然没有错字,它是 png
  • 谢谢,我已经这样做了
  • 我认为你应该使用image=... 而不是bitmap=...。另外,只需使用img = ImageTk.PhotoImage(file='...'),然后使用image=img
  • 错误信息表明引发错误的代码与您发布的代码不完全相同(您发布的代码说menu=helpmenu,但错误中引用的代码只是说helpmenu。请发布实际引发错误的代码。
  • @fhdrsdg 是的,你很聪明,我改成图片了,效果很好!非常感谢您。但是后来我想知道位图和图像有什么区别,因为我的眼睛都是图像

标签: python python-2.7 tkinter


【解决方案1】:

要显示PhotoImage,您应该使用image 属性,而不是bitmap
也可以直接使用ImageTk.PhotoImage(file='...')直接打开图片文件

因此您可以使用以下代码在菜单中显示您的图像:

img = ImageTk.PhotoImage(file="help.png") 
menubar.add_cascade(label="Help", menu=helpmenu, image=img)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 2014-11-23
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    相关资源
    最近更新 更多