2014-09-19 81 views
-1
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() 

我看过我的朋友的代码添加图像到画布(其工作,图像显示正确),几乎复制它的单词,但只是替换文件名。出于某种原因,图像不显示。窗口出现,旁边的所有标签和按钮,我没有得到任何错误。画布在那里,但图像根本不想显示。蟒蛇Tkinter帆布图像不会显示

'nsslogo.gif'与代码完全相同,因此我不明白为什么它不起作用。帮帮我?

+0

这个问题的变化已被问及在这个网站上多次回答。在问这个问题之前你有没有搜索过?也许我们可以改进原来的问题,以便更容易找到。 – 2014-09-19 14:14:45

回答

1

使PhotoImage对象不被垃圾收集。

最简单的方法是将变量声明为全局变量。

def Login(): 
    global W_Menu 
    global img # <---------- 
    W_Menu = Tk() 
    ...