【问题标题】:Tkinter Label Won't UpdateTkinter 标签不会更新
【发布时间】:2014-06-14 20:36:44
【问题描述】:

我正在编写一个类似于 cookie clicker 的程序,并且“Hireprice”标签不会更新。这是我的代码。我不明白为什么标签不起作用,任何建议都会有所帮助。

from Tkinter import *
Cookies = 0
Helpers = 1
HirePrice = 100
CCK = Tk()
CCK.geometry("200x200")
CCK.title("Cookie Clicker")
CCookies = IntVar()
CCookies.set(Cookies)
def Bake():
    global Cookies
    global Helpers
    Cookies = Cookies + Helpers
    CCookies.set(Cookies)
def HelperHire():
    global Helpers
    global HirePrice
    global CCookies
    global Cookies
    global HireLabel
    global HireLabelTk
    if Cookies >= HirePrice:
        Helpers = Helpers + 1
        Cookies = Cookies - HirePrice
        CCookies.set(Cookies)
        HirePrice = HirePrice * 2.5
        HireLabel = "Hire Price: " + str(HirePrice)
        HireLabelTk = StringVar()
        HireLabelTk.set(HireLabel)
HireLabel = "Hire Price: " + str(HirePrice)
HireLabelTk = StringVar()
HireLabelTk.set(HireLabel)
Hireprice = Label(CCK,textvariable = HireLabelTk, padx = 20,pady = 10)
Hireprice.pack()
BakeButton = Button(CCK,text = "Bake!", padx = 15, pady = 1, width = 10, height = 1, command = Bake)
BakeButton.pack()
HireButton = Button(CCK,text = "Hire a helper!", padx = 15, pady = 1, width = 10, height = 1, command = HelperHire)
HireButton.pack()
CookieNum = Label(CCK,textvariable = CCookies, padx = 10,pady = 100)
CookieNum.pack()
CCK.mainloop()

【问题讨论】:

  • 可能是因为你写的是Hireprice而不是HirePrice
  • 哦等等!没用!

标签: python python-2.7 tkinter


【解决方案1】:

问题在于,每次更改值时,都会创建StringVar 的新实例,而不是更新与标签关联的实例。从HelperHire 中删除HireLabelTk = StringVar()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 2015-05-24
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 2017-11-18
    相关资源
    最近更新 更多