每当我单击检测按钮时,我都希望更新 0/1000 按钮。单击一次后,它变成 1/1000 。如果我单击两次,它将变成 2/1000 ,依此类推。我该怎么做?到目前为止,我已经有了它,但是没有用。
from tkinter import *
from tkinter import ttk
score = 0
max_score = 1000
root = Tk()
root.title('Gamerscore')
root.geometry('600x400')
root.grid_rowconfigure(0, weight='1')
root.grid_columnconfigure(0, weight='1')
style = ttk.Style()
style.configure("TButton",
font="Serif 15",
padding=10)
def button_detect_press():
score += 1
button_score = ttk.Button(main_frame, text=str(score) + '/' + str(max_score)).grid(row=1, column=0)
main_frame = Frame(root)
main_frame.grid(row=0, columnspan=4)
button_score = ttk.Button(main_frame, text=str(score) + '/' + str(max_score)).grid(row=1, column=0)
button_detect = ttk.Button(main_frame, text='Detect', command=button_detect_press).grid(row=4, column=0)
root.mainloop()
答案 0 :(得分:3)
问题是您每次点击都会创建一个新按钮。而是要在现有按钮上调用configure
方法。
这需要进行两项更改。首先,您需要将按钮的创建与其布局分开。这是必要的,因为ttk.Button(...).grid(...)
返回grid(...)
的值,并且始终返回None。另外,以我的经验,将它们分开可以使布局在阅读代码时更易于可视化,并且更易于编写代码。
因此,请按如下所示创建和布置按钮:
button_score = ttk.Button(main_frame, text=str(score) + '/' + str(max_score))
button_detect = ttk.Button(main_frame, text='Detect', command=button_detect_press)
button_score.grid(row=1, column=0)
button_detect.grid(row=4, column=0)
接下来,修改button_detect_press
以在configure
上调用button_score
方法:
def button_detect_press():
score += 1
text = str(score) + '/' + str(max_score))
button_score.configure(text=text)