def Login():
global W_Menu
W_Menu = Tk()
W_Menu.geometry('195x300+600+200')
W_Menu.title("NSS DB")
A0 = Canvas(W_Menu, width='160', height='160')
A0.pack()
img = PhotoImage(file="nsslogo.gif")
A0.create_image(0,0, image=img)
A3 = Label(W_Menu, text = "Username")
A3.pack()
A4 = Entry(W_Menu, bd = 3)
A4.pack()
A5 = Label(W_Menu, text = "Password")
A5.pack()
A6 = Entry(W_Menu, show = "*", bd = 3)
A6.pack()
A7 = tkinter.Button(W_Menu, text = "Log In", command = Reaction)
A7.pack()
A8 = tkinter.Button(W_Menu, text = "Register", command = RegisterMenu)
A8.pack()
我查看了我朋友的代码,用于将图像添加到画布(工作正常,图像正确显示),并且几乎一字一句地复制它,但只是替换了文件名。由于某种原因,图像不会显示。窗口显示,以及所有标签和按钮,我没有错误。画布就在那里,但图像根本不想显示。
'nsslogo.gif'与代码完全相同,所以我不明白为什么它不起作用。帮助
答案 0 :(得分:1)
使PhotoImage
个对象不被垃圾收集。
最简单的方法是将变量声明为全局变量。
def Login():
global W_Menu
global img # <----------
W_Menu = Tk()
...