我試圖做一個簡單的RPG,當你收集黃金時它會顯示在標籤中,但它不會! 下面是代碼:Tkinter標籤不顯示Int變量
def start():
Inv=Tk()
gold = IntVar(value=78)
EtkI2=Label(Inv, textvariable=gold).pack()
我是新來的蟒蛇,特別是Tkinter的,所以我需要幫助!
我試圖做一個簡單的RPG,當你收集黃金時它會顯示在標籤中,但它不會! 下面是代碼:Tkinter標籤不顯示Int變量
def start():
Inv=Tk()
gold = IntVar(value=78)
EtkI2=Label(Inv, textvariable=gold).pack()
我是新來的蟒蛇,特別是Tkinter的,所以我需要幫助!
您的代碼唯一的問題是您沒有調用根窗口的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
非常感謝!但我還有一個問題:我該如何修改這個可變的黃金? gold.set(13)可以嗎? – GigixTocco
@ gigixtocco:是的,'gold.set(...)'是改變它的方法。 –
你得到什麼錯誤? – Gogo
對於標籤,你需要StringVar。 – Marcin
@Marcin:不正確。如果您願意,您可以使用IntVar。 –