我试图制作一个简单的RPG,当你收集金币时,它将以标签显示,但它并没有! 这是代码:
def start():
Inv=Tk()
gold = IntVar(value=78)
EtkI2=Label(Inv, textvariable=gold).pack()
我是python的新手,尤其是tkinter,所以我需要帮助!!!
答案 0 :(得分: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()
您的代码还可以改进其他一些功能。对于exaple,EtkI2
将设置为None
,因为这是pack()
返回的内容。最好将小部件创建与小部件布局分开。此外,不进行全局导入(from Tkinter import *
)会更好。我推荐import Tkinter as tk ... tk.Label(...)
。
我在这里解释了更多关于这一点以及使用面向对象的方法:https://stackoverflow.com/a/17470842