I don’t know what is wrong with it but as stated above the update_value isn’t working and I keep getting AttributeError: ‘Frame’ object has no attribute ‘update_values’
import sys
import tkinter as tk
from tkinter import ttk
from tkinter import *
from tkinter import messagebox
from tkinter import font
import pygsheets
import gspread
#path cannot be to an external usb copy path from where the json file is
path= "D:creds1.json"
gc=pygsheets.authorize(service_account_file=path)
# print(gc.spreadsheet_titles())
sh=gc.open('Tournament')
#google sheet sheets
Teams=sh[0]
TeamsEvents = sh[1]
Individuals = sh[2]
IndEvents = sh[3]
TeamScores = sh[4]
IndScores = sh[5]
TLead =sh[6]
ILead = sh[7]
TEvents =sh[8]
IEvents = sh[9]
title = 'Calbri 24'
teamID = Teams.get_values('A2','A5')
tmEv = TEvents.get_values('B2','B11')
Team1 =Teams.get_value('B2')
def Team_Input():
TeamID = cbTI.get()
Team_Name = tName_ent.get()
Member1 = mem1_ent.get()
Member2 = mem2_ent.get()
Member3 = mem3_ent.get()
Member4 = mem4_ent.get()
Member5 = mem5_ent.get()
Event1 = Ev1_cb.get()
Event2 = Ev2_cb.get()
Event3 = Ev3_cb.get()
Event4 = Ev4_cb.get()
Event5 = Ev5_cb.get()
if TeamID == 'Team1':
Teams.update_values('B2', [[Team_Name]])
print(TeamID)
# window
window = tk.Tk()
window.title('Williams College Submission Form')
window.geometry('1000x600')
window.resizable(False,False)
# home page
home = Frame(window)
home.grid(row=0, column=0, sticky='nsew')
home_label = Label(home, text='Please select from the options below', font = title)
home_label.pack()
#buttons for home page
home_button_frame = Frame(home)
Individual_button = Button (home_button_frame, text='Individual', command=lambda: Individual_input.tkraise())
Teams_button = Button(home_button_frame, text='Teams', command=lambda: Teams.tkraise())
leaderboard_button = Button (home_button_frame, text='Leaderboard', command=lambda: Team_leaderboard.tkraise())
Individual_button.pack(side='left', padx=20)
Teams_button.pack(side='left', padx=20)
leaderboard_button.pack(side='left', padx=20)
home_button_frame.pack()
# End of home page
#Teams Page
Teams = Frame(window)
Teams.grid(row=0, column=0, sticky='nsew')
Teams_label = Label(Teams, text='Team Form', font = title)
Teams_label.pack()
#team name frame
Tname =Frame(Teams)
TI_lbl = Label(Tname, text='Team ID')
cbTI = ttk.Combobox(Tname, values=teamID, width=7)
TI_lbl.pack(side='left', padx=5)
cbTI.pack(side='left', padx=10)
tName_lbl = Label(Tname, text='Team Name')
tName_ent = tk.Entry(Tname, width= 10)
tName_lbl.pack(side='left',padx=10)
tName_ent.pack(side='left',padx=10)
Tname.pack(pady=20)
#Team Members frame
members =Frame(Teams)
mem1_lbl = Label(members, text='Member 1')
mem1_ent = tk.Entry(members, width= 10)
mem1_lbl.pack(side='left',padx=10)
mem1_ent.pack(side='left',padx=10)
mem2_lbl = Label(members, text='Member 2')
mem2_ent = tk.Entry(members, width= 10)
mem2_lbl.pack(side='left',padx=10)
mem2_ent.pack(side='left',padx=10)
mem3_lbl = Label(members, text='Member 3')
mem3_ent = tk.Entry(members, width= 10)
mem3_lbl.pack(side='left',padx=10)
mem3_ent.pack(side='left',padx=10)
mem4_lbl = Label(members, text='Member 4')
mem4_ent = tk.Entry(members, width= 10)
mem4_lbl.pack(side='left',padx=10)
mem4_ent.pack(side='left',padx=10)
mem5_lbl = Label(members, text='Member 5')
mem5_ent = tk.Entry(members, width= 10)
mem5_lbl.pack(side='left',padx=10)
mem5_ent.pack(side='left',padx=10)
members.pack()
#event frame
TEvent_fr =Frame(Teams)
Ev1_lbl = Label(TEvent_fr, text='Event 1')
Ev1_cb = ttk.Combobox(TEvent_fr, values=tmEv, width=14)
Ev1_lbl.pack(side='left',padx=10)
Ev1_cb.pack(side='left',padx=10)
Ev2_lbl = Label(TEvent_fr, text='Event 2')
Ev2_cb = ttk.Combobox(TEvent_fr, values=tmEv, width=14)
Ev2_lbl.pack(side='left',padx=10)
Ev2_cb.pack(side='left',padx=10)
Ev3_lbl = Label(TEvent_fr, text='Event 3')
Ev3_cb = ttk.Combobox(TEvent_fr, values=tmEv, width=14)
Ev3_lbl.pack(side='left',padx=10)
Ev3_cb.pack(side='left',padx=10)
Ev4_lbl = Label(TEvent_fr, text='Event 4')
Ev4_cb = ttk.Combobox(TEvent_fr, values=tmEv, width=14)
Ev4_lbl.pack(side='left',padx=10)
Ev4_cb.pack(side='left',padx=10)
Ev5_lbl = Label(TEvent_fr, text='Event 5')
Ev5_cb = ttk.Combobox(TEvent_fr, values=tmEv, width=14)
Ev5_lbl.pack(side='left',padx=10)
Ev5_cb.pack(side='left',padx=10)
TEvent_fr.pack(pady=20)
#submit button
Tsub_btn =Button(Teams, text='Submit', command= Team_Input)
Tsub_btn.pack()
#Teams nav
Teams_home_nav = Button(Teams, text='Home', command=lambda: home.tkraise())
Teams_home_nav.pack(pady= 20)
#end of nav
#end of Teams page
#student page
Individual_input = Frame(window)
Individual_input.grid(row=0, column=0, sticky='nsew')
Individual_label = Label(Individual_input, text='Form for Individuals', font = title)
Individual_label.pack()
#buttons for student select page
home_button_student = Button(Individual_input, text='Home', command=lambda: home.tkraise())
home_button_student.pack(pady=10)
#end of student select page
#leaderboard page
Team_leaderboard = Frame(window)
Team_leaderboard.grid(row=0, column=0, sticky='nsew')
Team_leaderboard_label = Label(Team_leaderboard, text='Leaderboarad', font='Calibri 24')
Team_leaderboard_label.pack()
#button for leaderboard
home_button_lead = Button(Team_leaderboard, text='Home', command=lambda: home.tkraise())
home_button_lead.pack()
#end of nav
#end of leaderboard page
#home page first
home.tkraise()
# run
window.mainloop()
I have tried changing different ways to update the value but it still doesn’t work and have tested it outside which does work so I’m not sure what the problem is.
New contributor
Joy Wang is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.