' image" pyimage2"不存在'?

时间:2014-09-29 10:32:47

标签: python tkinter

这是发现错误的地方:

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)

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

P.S。我看过其他类似问题的线程,但没有一个适用于我。

2 个答案:

答案 0 :(得分:7)

好的,所以你说login功能可以工作一次,那么它就不能再工作了。这里可以使用tk.Toplevel()代替tk.Tk()来解决问题,请参阅:why python photoimages don't exist?tkinter.TclError: image "pyimage3" doesn't exist

这些主题提到了如何同时运行两个Tk()个实例,您必须使用Toplevel()

为什么这些线程不适用于你(我认为他们确实......)?但只是一个提示,如果你声明他们不适用于你,那么说明理由,这有助于使你的问题更清楚。此外,当您的问题与特定错误有关时,请添加完整的追溯。

希望这有点帮助。

答案 1 :(得分:0)

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