2014-09-19 66 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() 
    ...