Я пытаюсь создать кнопку 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()
Это ответ на ваш же вопрос?
Да, я исправил это из полученного комментария и решил загрузить обновленный код.
@Krish Тогда вы должны принять это как ответ, чтобы пометить этот вопрос как решенный.
@ acw1668 Я пытался! Они просили меня подождать, в настоящее время на 24 минуты больше, чем я могу принять свой собственный ответ.
team_spaces_left
не обновляется внутриadd_a_team()
иteams_updater()
, так что хоть вы и обновилиteams_updater_var
, но содержание то же самое.