标签不更新变量
Label doesn't update the variable
我是Python的新手,但我学到了一些东西,现在我正在尝试制作一个简单的游戏。我希望标签显示能量,但当能量变化时它不会更新。我的代码:
def start_def():
global main
main.destroy()
def run():
global energy
energy = energy - 25
print(energy)
game = Tk()
game.title("Anne: O Jogo")
game.geometry("800x600")
game.resizable(0,0)
global energy
energy = int(100)
global img
img = ImageTk.PhotoImage(Image.open("anne.jpg"))
panel = Label(game, image=img)
panel.pack(side="left", pady=5, padx=5)
panel.place(x=15, y=15)
Label(game, text="Anne", font=("Verdana", 25, "bold")).place(x=220, y=20)
Label(game, text="Energia: ", font=("Verdana", 15, "bold")).place(x=220, y=70)
Label(game, text=energy, font=("Verdana", 15, "bold")).place(x=320, y=71)
b = Button(game, text="Correr", command=run).pack()
`
这是我整个代码的一部分,如果你们需要其余部分,尽管问。感谢您的帮助。
您可以将标签分配给(全局)变量
label_energy = Label(...)
然后你可以改变
energy += 10
label_energy['text'] = str(energy)
#or
label_energy.config(text=str(energy))
但 Tkinter 有特殊变量 IntVar
、StringVar
等,您可以使用 textvariable=
将其与标签一起使用
energy = IntVar()
energy.set( 0 )
Label(..., textvariable=energy )
如果你改变变量 energy
energy.set( energy.get() + 10 )
然后标签将自动更改其文本。
我是Python的新手,但我学到了一些东西,现在我正在尝试制作一个简单的游戏。我希望标签显示能量,但当能量变化时它不会更新。我的代码:
def start_def():
global main
main.destroy()
def run():
global energy
energy = energy - 25
print(energy)
game = Tk()
game.title("Anne: O Jogo")
game.geometry("800x600")
game.resizable(0,0)
global energy
energy = int(100)
global img
img = ImageTk.PhotoImage(Image.open("anne.jpg"))
panel = Label(game, image=img)
panel.pack(side="left", pady=5, padx=5)
panel.place(x=15, y=15)
Label(game, text="Anne", font=("Verdana", 25, "bold")).place(x=220, y=20)
Label(game, text="Energia: ", font=("Verdana", 15, "bold")).place(x=220, y=70)
Label(game, text=energy, font=("Verdana", 15, "bold")).place(x=320, y=71)
b = Button(game, text="Correr", command=run).pack()
`
这是我整个代码的一部分,如果你们需要其余部分,尽管问。感谢您的帮助。
您可以将标签分配给(全局)变量
label_energy = Label(...)
然后你可以改变
energy += 10
label_energy['text'] = str(energy)
#or
label_energy.config(text=str(energy))
但 Tkinter 有特殊变量 IntVar
、StringVar
等,您可以使用 textvariable=
energy = IntVar()
energy.set( 0 )
Label(..., textvariable=energy )
如果你改变变量 energy
energy.set( energy.get() + 10 )
然后标签将自动更改其文本。