Tkinter Label未显示Int变量
我正在尝试制作一个简单的角色扮演游戏(RPG),在游戏中你收集金币时,它应该显示在一个标签上,但现在没有显示出来!!
这是我的代码:
def start():
Inv=Tk()
gold = IntVar(value=78)
EtkI2=Label(Inv, textvariable=gold).pack()
我刚开始学习Python,特别是tkinter,所以我需要帮助!!!
1 个回答
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