如何使用 Tkinter 创建一个使用两个命令的按钮,其中一个更新标签?
How can I create a button with Tkinter that uses two commands, which one of them updates a label?
我正在尝试创建一个 Tkinter 按钮,它 运行 有两个命令,一个是主要功能,另一个是在按下按钮时更新标签。我已经能够使用这两个功能使其成为 运行,但它不会更新标签。关于这个问题有什么建议吗?我已经包含了我尝试过的代码。提前谢谢你。
from tkinter import *
from tkinter import ttk
csv_team_count = 0
team_spaces_left = 4 - csv_team_count
def add_a_team():
print("testing")
global csv_team_count
csv_team_count += 1
root = Tk()
root.title("Sports Event Organiser!")
root.geometry("600x500")
my_notebook = ttk.Notebook(root)
my_notebook.pack()
#creates frames for the notebook.
frame1_overview = Frame(my_notebook, width=600, height=500, bg="#5797ff")
frame2_teams = Frame(my_notebook, width=600, height=500, bg="#5797ff")
frame1_overview.pack(fill="both", expand=0,)
frame2_teams.pack(fill="both", expand=0)
my_notebook.add(frame1_overview, text="Overview",)
my_notebook.add(frame2_teams, text="Teams")
teams_updater_var = StringVar()
teams_updater_var.set("Spaces Left: "+str(team_spaces_left))
def teams_updater():
teams_updater_var.set("Spaces Left: "+str(team_spaces_left))
def combined_TeamS_addT():
teams_updater()
add_a_team()
label_team_spaces_left = Label(frame2_teams,
textvariable=teams_updater_var,
font=('Helvatical bold',15),
bg="#5797ff",
fg="white",
).pack(pady = 5)
button_team_add = Button(frame2_teams,
text="Add A Team",
bg="white",
height = 1,
command=(combined_TeamS_addT)
).pack(pady = 10)
root.mainloop()
更新代码:
from tkinter import *
from tkinter import ttk
csv_team_count = 0
team_spaces_left = 4 - csv_team_count
def add_a_team():
global csv_team_count
csv_team_count += 1
print("testing")
root = Tk()
root.title("Sports Event Organiser!")
root.geometry("600x500")
my_notebook = ttk.Notebook(root)
my_notebook.pack()
#creates frames for the notebook.
frame1_overview = Frame(my_notebook, width=600, height=500, bg="#5797ff")
frame2_teams = Frame(my_notebook, width=600, height=500, bg="#5797ff")
frame1_overview.pack(fill="both", expand=0,)
frame2_teams.pack(fill="both", expand=0)
my_notebook.add(frame1_overview, text="Overview",)
my_notebook.add(frame2_teams, text="Teams")
teams_updater_var = StringVar()
teams_updater_var.set("Spaces Left: "+str(team_spaces_left))
def teams_updater():
global team_spaces_left
if 0 < team_spaces_left <= 4:
team_spaces_left = 4 - csv_team_count
else:
team_spaces_left = 0
teams_updater_var.set("Spaces Left: "+str(team_spaces_left))
def combined_TeamS_addT():
add_a_team()
teams_updater()
label_team_spaces_left = Label(frame2_teams,
textvariable=teams_updater_var,
font=('Helvatical bold',15),
bg="#5797ff",
fg="white",
).pack(pady = 5)
button_team_add = Button(frame2_teams,
text="Add A Team",
bg="white",
height = 1,
command=(combined_TeamS_addT)
).pack(pady = 10)
root.mainloop()
我正在尝试创建一个 Tkinter 按钮,它 运行 有两个命令,一个是主要功能,另一个是在按下按钮时更新标签。我已经能够使用这两个功能使其成为 运行,但它不会更新标签。关于这个问题有什么建议吗?我已经包含了我尝试过的代码。提前谢谢你。
from tkinter import *
from tkinter import ttk
csv_team_count = 0
team_spaces_left = 4 - csv_team_count
def add_a_team():
print("testing")
global csv_team_count
csv_team_count += 1
root = Tk()
root.title("Sports Event Organiser!")
root.geometry("600x500")
my_notebook = ttk.Notebook(root)
my_notebook.pack()
#creates frames for the notebook.
frame1_overview = Frame(my_notebook, width=600, height=500, bg="#5797ff")
frame2_teams = Frame(my_notebook, width=600, height=500, bg="#5797ff")
frame1_overview.pack(fill="both", expand=0,)
frame2_teams.pack(fill="both", expand=0)
my_notebook.add(frame1_overview, text="Overview",)
my_notebook.add(frame2_teams, text="Teams")
teams_updater_var = StringVar()
teams_updater_var.set("Spaces Left: "+str(team_spaces_left))
def teams_updater():
teams_updater_var.set("Spaces Left: "+str(team_spaces_left))
def combined_TeamS_addT():
teams_updater()
add_a_team()
label_team_spaces_left = Label(frame2_teams,
textvariable=teams_updater_var,
font=('Helvatical bold',15),
bg="#5797ff",
fg="white",
).pack(pady = 5)
button_team_add = Button(frame2_teams,
text="Add A Team",
bg="white",
height = 1,
command=(combined_TeamS_addT)
).pack(pady = 10)
root.mainloop()
更新代码:
from tkinter import *
from tkinter import ttk
csv_team_count = 0
team_spaces_left = 4 - csv_team_count
def add_a_team():
global csv_team_count
csv_team_count += 1
print("testing")
root = Tk()
root.title("Sports Event Organiser!")
root.geometry("600x500")
my_notebook = ttk.Notebook(root)
my_notebook.pack()
#creates frames for the notebook.
frame1_overview = Frame(my_notebook, width=600, height=500, bg="#5797ff")
frame2_teams = Frame(my_notebook, width=600, height=500, bg="#5797ff")
frame1_overview.pack(fill="both", expand=0,)
frame2_teams.pack(fill="both", expand=0)
my_notebook.add(frame1_overview, text="Overview",)
my_notebook.add(frame2_teams, text="Teams")
teams_updater_var = StringVar()
teams_updater_var.set("Spaces Left: "+str(team_spaces_left))
def teams_updater():
global team_spaces_left
if 0 < team_spaces_left <= 4:
team_spaces_left = 4 - csv_team_count
else:
team_spaces_left = 0
teams_updater_var.set("Spaces Left: "+str(team_spaces_left))
def combined_TeamS_addT():
add_a_team()
teams_updater()
label_team_spaces_left = Label(frame2_teams,
textvariable=teams_updater_var,
font=('Helvatical bold',15),
bg="#5797ff",
fg="white",
).pack(pady = 5)
button_team_add = Button(frame2_teams,
text="Add A Team",
bg="white",
height = 1,
command=(combined_TeamS_addT)
).pack(pady = 10)
root.mainloop()