【问题标题】:tkinter image display shows TclError errortkinter 图像显示显示 TclError 错误
【发布时间】:2020-11-04 01:25:07
【问题描述】:

我只想在我的 GUI 中显示一个徽标或图像。我尝试了互联网上发布的不同技术,但似乎都给了我一个错误TclError: image "pyimage27" doesn't exist。我检查了文件是否正确(png 文件)和路径。我仍然无法显示图像。下面是我的简单代码:

import tkinter as tk

root = tk.Tk()

def show_image():
    img_label = tk.Label(root)
    img_label.image = tk.PhotoImage(file="logo.png")
    img_label['image'] = img_label.image

    img_label.pack()


show_image()
root.mainloop()

我得到的错误


  File "C:\Users\bb\Documents
\line.py", line 54, in <module>
    alien()

  File "C:\Users\bb\Documents
\test.py\line.py", line 26, in __init__
    self.alien2 = self.canvas.create_image((100,100),image=CardVar,anchor=CENTER)

  File "C:\Users\bb\Anaconda3\lib\tkinter\__init__.py", line 2489, in create_image
    return self._create('image', args, kw)

  File "C:\Users\bb\Anaconda3\lib\tkinter\__init__.py", line 2480, in _create
    *(args + self._options(cnf, kw))))

TclError: image "pyimage30" doesn't exist

谢谢

有许多类似的答案可用,但没有帮助:

  1. When using Tkinter, error: TclError: image "pyimage8" doesn't exist
  2. Python: Tkinter TclError: can't invoke "image" command

【问题讨论】:

  • 您的简化代码在运行时是否实际产生错误?我怀疑你的真实代码不止一次调用Tk(),这是可能导致的众多问题之一。
  • 显示的错误来自create_image(),但您的代码没有这样的语句。
  • 是的,你说得对。我的主要代码对 Tk() 有更多的调用,它给了我错误。解决办法是什么?
  • 一般来说,您应该只调用一次Tk()。避免这种情况仅取决于您要做什么(我们无法从您问题中的示例代码中看出这一点)。
  • 您必须使用Toplevel() 来创建额外的窗口。 Tk() 不仅仅是创建一个窗口——它创建了实现 GUI 的整个 Tcl/Tk 环境,窗口只是一个不可避免的副作用。如果您多次调用它,您可能会遇到这样的情况,例如图像存在于一个环境中,而一个小部件想要使用该图像存在于另一个环境中。

标签: python user-interface tkinter


【解决方案1】:

你可以试试PhotoImage(file="path", master=root)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 2017-08-26
    • 2021-05-11
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多