如何在每次按下时按钮修改标签?

时间:2018-01-26 22:07:45

标签: python tkinter

基本上我要做的就是制作一个简单的点计数器,就像在地下城和龙中,或者在一开始就在辐射4中。

from tkinter import *

points = 21
global Strength
global dexterity
global intelligence
def Plus():
print("hi")
label = Label(root, text = points)
label.grid()

strengthlb = Label(root, text = "Strength")
strengthlb.grid()


strplusbtn = Button(root, text = "+", command = points -1)
strplusbtn.grid()

label.config(text = points)

strengthcoutnerlb = Label(root, text = 0)  

我的目标是当我点击名为strplusbtn的按钮时,我向strengthcounterlb添加1,并从名为label的标签和名为points的变量中减去1。 / p>

1 个答案:

答案 0 :(得分:0)

  1. 您可以配置按钮的command选项,以便调用 按下时引用的方法。
  2. 您可以通过配置标签text选项来配置标签的文本。
  3. 一种方法可以对可达范围内的变量进行算术运算 它的范围,例如全局变量。
  4. 在下面的代码plus按钮被配置为在按下时调用increase_str方法。该方法修改全局变量(pointsstrengthtot_atrstr_atr)并标记文本选项。

    try:
        import tkinter as tk
    except:
        import Tkinter as tk
    
    
    def increase_str():
        global points, strength
        strength += 1
        points -= 1
        tot_atr['text'] = "Total Points: {}".format(points)
        str_atr['text'] = "Strength: {}".format(strength)
    
    
    if __name__ == '__main__':
        root = tk.Tk()
        points = 10
        strength = 5
        tot_atr = tk.Label(root, text="Total Points: {}".format(points))
        str_atr = tk.Label(root, text="Strength: {}".format(strength))
        plus = tk.Button(root, text="+", command=increase_str)
    
        tot_atr.pack()
        str_atr.pack(side='left')
        plus.pack(side='left')
        root.mainloop()