【问题标题】:Tkinter Label not showing Int variableTkinter 标签未显示 Int 变量
【发布时间】:2014-07-31 02:35:54
【问题描述】:

我正在尝试制作一个简单的角色扮演游戏,当你收集金币时,它会显示在标签中,但它没有! 代码如下:

def start():

    Inv=Tk()

    gold = IntVar(value=78)


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

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

【问题讨论】:

  • 你遇到了什么错误?
  • 对于你需要 StringVar 的标签。
  • @Marcin:不正确。如果需要,您可以使用 IntVar。

标签: python variables tkinter label


【解决方案1】:

您的代码唯一的问题是您没有调用根窗口的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 ? gold.set(13) 可以吗?
  • @gigixtocco:是的,gold.set(...) 是改变它的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-16
相关资源
最近更新 更多