2014-06-10 108 views
-1

我試圖做一個簡單的RPG,當你收集黃金時它會顯示在標籤中,但它不會! 下面是代碼:Tkinter標籤不顯示Int變量

def start(): 

    Inv=Tk() 

    gold = IntVar(value=78) 


    EtkI2=Label(Inv, textvariable=gold).pack() 

我是新來的蟒蛇,特別是Tkinter的,所以我需要幫助!

+0

你得到什麼錯誤? – Gogo

+0

對於標籤,你需要StringVar。 – Marcin

+0

@Marcin:不正確。如果您願意,您可以使用IntVar。 –

回答

0

您的代碼唯一的問題是您沒有調用根窗口的mainloop方法。一旦你這樣做,你的代碼就可以正常工作。

這裏有一個稍微修改版本,5秒後更新值:

from Tkinter import * 

def start(): 
    Inv = Tk() 
    Inv.geometry("200x200") 

    gold = IntVar(value=78) 
    EtkI2=Label(Inv, textvariable=gold).pack() 

    # chanage the gold value after 5 seconds 
    Inv.after(5000, gold.set, 100) 

    # start the event loop 
    Inv.mainloop() 


start() 

有可能你的代碼來改善一些其他的事情。例如,EtkI2將被設置爲None,因爲那是pack()返回的值。最好將窗口小部件創建與窗口小部件佈局分開。另外,最好不是做全球進口(from Tkinter import *)。我建議import Tkinter as tk ... tk.Label(...)

我對此進行詳細說明在這裏使用面向對象的方法一起:https://stackoverflow.com/a/17470842

+0

非常感謝!但我還有一個問題:我該如何修改這個可變的黃金? gold.set(13)可以嗎? – GigixTocco

+0

@ gigixtocco:是的,'gold.set(...)'是改變它的方法。 –