Tkinter标签未显示Int变量

时间:2014-06-10 10:52:00

标签: python variables tkinter label

我试图制作一个简单的RPG,当你收集金币时,它将以标签显示,但它并没有! 这是代码:

def start():

    Inv=Tk()

    gold = IntVar(value=78)


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

我是python的新手,尤其是tkinter,所以我需要帮助!!!

1 个答案:

答案 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