Tkinter Label未显示Int变量

-1 投票
1 回答
4085 浏览
提问于 2025-04-18 09:16

我正在尝试制作一个简单的角色扮演游戏(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

撰写回答