【问题标题】:'image "pyimage2" doesn't exist'?'图像“pyimage2”不存在'?
【发布时间】:2014-11-23 17:20:44
【问题描述】:

这是发现错误的地方:

global backbuttonimg
backbuttonimg = PhotoImage(file="backbutton.gif")
C6 = tkinter.Button(W_CheckDates, image=backbuttonimg, command = CheckDatesBack)
C6.pack()

我不明白为什么这不起作用。我的程序中有另一张图片:

def Login():
  global W_Menu
  W_Menu = Tk()
  W_Menu.geometry('160x310+600+200')
  W_Menu.title("NSS DB")
  A0 = Canvas(W_Menu, width='160', height='160')
  A0.pack()
  global img
  img = PhotoImage(file="nsslogo.gif")
  A0.create_image(80,80, image=img)

当我在最初调用上面的定义之后(例如,当我的程序注销时)尝试调用它时,我也遇到了类似的错误,所以我重新调整了,所以窗口只是取消图标而不是再次调用它,我不要再得到错误。但是我很困惑为什么我现在在前一段代码中出现错误,因为该按钮根本不会显示它是否是第一次调用。抱歉,如果这有点模糊,请询问我是否没有足够详细地解释。提前致谢。

附:我查看了其他有类似问题的线程,但没有一个适用于我。

【问题讨论】:

  • 显示完整的错误/回溯。

标签: python tkinter


【解决方案1】:

为尝试上述方法但未成功的任何人添加此内容。如果在某些环境中运行脚本时路径错误,则会保留文件的路径。我注释掉了从第一次使用 PhotoImage 到窗口主循环的所有内容,运行脚本,关闭生成的 gui,取消注释代码,运行,它会按预期显示图像。

【讨论】:

    【解决方案2】:

    好吧,你说login 函数工作一次,然后就不能再工作了。这里问题可以使用tk.Toplevel() 而不是tk.Tk() 来解决,请参阅:why python photoimages don't exist? 和tkinter.TclError: image "pyimage3" doesn't exist

    这些线程提到你不能同时运行Tk() 的两个实例,你必须改用Toplevel()。

    为什么这些主题不适用于您(我认为它们适用...)?但只是一个提示,如果您声明它们不适用于您,请说明原因,这有助于使您的问题更清晰。此外,当您的问题与特定错误有关时,请添加完整的回溯。

    希望这会有所帮助。

    【讨论】:

    • 非常感谢,效果很好!我对编码很陌生,所以只是我的一个错误——它们确实适用于我。希望下次不会发生这种情况:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    • 2023-02-07
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多