【发布时间】:2021-05-24 01:28:18
【问题描述】:
我有一个按钮来编辑球员的球员统计数据,但我正在努力添加一个名为 Add New Player 的按钮,该按钮将允许用户输入新球员的姓名并输入他们进入系统。我对编码很陌生,我真的不知道这是否可能,因为对于其他玩家,我添加了单独的功能,甚至能够编辑他们的统计数据。
# import what is necessary
from tkinter import Tk, Label, Button, IntVar, Toplevel
main_account_screen()
# create a dictionary to store data
stored_data = {'Daniel Keelagher': {'Matches Played': 10, 'Goals': 4, 'Assists': 4, 'YC': 0, 'RC': 0},
'Joseph Keelagher': {'Matches Played': 10, 'Goals': 2, 'Assists': 2, 'YC': 1, 'RC': 0},
'Benjamin Miller': {'Matches Played': 10, 'Goals': 0, 'Assists': 0, 'YC': 1, 'RC': 0},
'Jordan Terlato': {'Matches Played': 8, 'Goals': 1, 'Assists': 1, 'YC': 3, 'RC': 1},
'Arki Gantzos': {'Matches Played': 9, 'Goals': 3, 'Assists': 2, 'YC': 0, 'RC': 0},
'Billy Houndalas': {'Matches Played': 10, 'Goals': 0, 'Assists': 0, 'YC': 0, 'RC': 0},
'Hayato Uematsu': {'Matches Played': 9, 'Goals': 2, 'Assists': 3, 'YC': 0, 'RC': 0},
'Mark Boccari': {'Matches Played': 10, 'Goals': 1, 'Assists': 1, 'YC': 2, 'RC': 0},
'Oliver Gibson': {'Matches Played': 7, 'Goals': 1, 'Assists': 2, 'YC': 0, 'RC': 0},
'Zaid Khaleqi': {'Matches Played': 9, 'Goals': 2, 'Assists': 0, 'YC': 0, 'RC': 0}}
# define function change which will be responsible for changing data in stored_data dictionary
def change(player, stat, value, operator): # set required arguments for the function which will be the: player (key in the dictionary, i.e. 'Daniel Keelagher'); stat (key in the player dictionary i.e. 'Goals', 'Assists'); value (refers to the IntVar associated with the respective Label); operator (determines whether value will be subtracted or added)
# getting the current value of the associated IntVar
cur_value = value.get()
# eval to determine the operation if/elif
if operator == '-':
# accessing the stored_data key and dictionary key under the stored_data[key]
stored_data[player][stat] = cur_value - 1
# setting the IntVar value
value.set(cur_value - 1)
elif operator == '+':
# same as previous but adding value
stored_data[player][stat] = cur_value + 1
value.set(cur_value + 1)
# Edit function for "Daniel Keelagher"
def edit_dk():
# Creating a new window for data editing
tp = Toplevel(root)
# Packing a label to display name
Label(tp, text='Daniel Keelagher').grid(row=0, column=0, columnspan=15)
# Edit buttons and value label for data editing
Button(tp, text='-', command=lambda: change('Daniel Keelagher', 'Matches Played', dk_matches_var, '-')).grid(row=1, column=0)
Label(tp, textvariable=dk_matches_var).grid(row=1, column=1)
Button(tp, text='+', command=lambda: change('Daniel Keelagher', 'Matches Played', dk_matches_var, '+')).grid(row=1, column=2)
Button(tp, text='-', command=lambda: change('Daniel Keelagher', 'Goals', dk_goals_var, '-')).grid(row=1, column=3)
Label(tp, textvariable=dk_goals_var).grid(row=1, column=4)
Button(tp, text='+', command=lambda: change('Daniel Keelagher', 'Goals', dk_goals_var, '+')).grid(row=1, column=5)
Button(tp, text='-', command=lambda: change('Daniel Keelagher', 'Assists', dk_assists_var, '-')).grid(row=1, column=6)
Label(tp, textvariable=dk_assists_var).grid(row=1, column=7)
Button(tp, text='+', command=lambda: change('Daniel Keelagher', 'Assists', dk_assists_var, '+')).grid(row=1, column=8)
Button(tp, text='-', command=lambda: change('Daniel Keelagher', 'YC', dk_yc_var, '-')).grid(row=1, column=9)
Label(tp, textvariable=dk_yc_var).grid(row=1, column=10)
Button(tp, text='+', command=lambda: change('Daniel Keelagher', 'YC', dk_yc_var, '+')).grid(row=1, column=11)
Button(tp, text='-', command=lambda: change('Daniel Keelagher', 'RC', dk_rc_var, '-')).grid(row=1, column=12)
Label(tp, textvariable=dk_rc_var).grid(row=1, column=13)
Button(tp, text='+', command=lambda: change('Daniel Keelagher', 'RC', dk_rc_var, '+')).grid(row=1, column=14)
# Edit function for "Joseph Keelagher"
def edit_jk():
# Creating a new window for data editing
tp = Toplevel(root)
# Packing a label to display name
Label(tp, text='Joseph Keelagher').grid(row=0, column=0, columnspan=15)
# Edit buttons and value label for data editing
Button(tp, text='-', command=lambda: change('Joseph Keelagher', 'Matches Played', jk_matches_var, '-')).grid(row=2, column=0)
Label(tp, textvariable=jk_matches_var).grid(row=2, column=1)
Button(tp, text='+', command=lambda: change('Joseph Keelagher', 'Matches Played', jk_matches_var, '+')).grid(row=2, column=2)
Button(tp, text='-', command=lambda: change('Joseph Keelagher', 'Goals', jk_goals_var, '-')).grid(row=2, column=3)
Label(tp, textvariable=jk_goals_var).grid(row=2, column=4)
Button(tp, text='+', command=lambda: change('Joseph Keelagher', 'Goals', jk_goals_var, '+')).grid(row=2, column=5)
Button(tp, text='-', command=lambda: change('Joseph Keelagher', 'Assists', jk_assists_var, '-')).grid(row=2, column=6)
Label(tp, textvariable=jk_assists_var).grid(row=2, column=7)
Button(tp, text='+', command=lambda: change('Joseph Keelagher', 'Assists', jk_assists_var, '+')).grid(row=2, column=8)
Button(tp, text='-', command=lambda: change('Joseph Keelagher', 'YC', jk_yc_var, '-')).grid(row=2, column=9)
Label(tp, textvariable=jk_yc_var).grid(row=2, column=10)
Button(tp, text='+', command=lambda: change('Joseph Keelagher', 'YC', jk_yc_var, '+')).grid(row=2, column=11)
Button(tp, text='-', command=lambda: change('Joseph Keelagher', 'RC', jk_rc_var, '-')).grid(row=2, column=12)
Label(tp, textvariable=jk_rc_var).grid(row=2, column=13)
Button(tp, text='+', command=lambda: change('Joseph Keelagher', 'RC', jk_rc_var, '+')).grid(row=2, column=14)
# Edit function for "Benjamin Miller"
def edit_bm():
# Creating a new window for data editing
tp = Toplevel(root)
# Packing a label to display name
Label(tp, text='Benjamin Miller').grid(row=0, column=0, columnspan=15)
# Edit buttons and value label for data editing
Button(tp, text='-', command=lambda: change('Benjamin Miller', 'Matches Played', bm_matches_var, '-')).grid(row=3, column=0)
Label(tp, textvariable=bm_matches_var).grid(row=3, column=1)
Button(tp, text='+', command=lambda: change('Benjamin Miller', 'Matches Played', bm_matches_var, '+')).grid(row=3, column=2)
Button(tp, text='-', command=lambda: change('Benjamin Miller', 'Goals', bm_goals_var, '-')).grid(row=3, column=3)
Label(tp, textvariable=bm_goals_var).grid(row=3, column=4)
Button(tp, text='+', command=lambda: change('Benjamin Miller', 'Goals', bm_goals_var, '+')).grid(row=3, column=5)
Button(tp, text='-', command=lambda: change('Benjamin Miller', 'Assists', bm_assists_var, '-')).grid(row=3, column=6)
Label(tp, textvariable=bm_assists_var).grid(row=3, column=7)
Button(tp, text='+', command=lambda: change('Benjamin Miller', 'Assists', bm_assists_var, '+')).grid(row=3, column=8)
Button(tp, text='-', command=lambda: change('Benjamin Miller', 'YC', bm_yc_var, '-')).grid(row=3, column=9)
Label(tp, textvariable=bm_yc_var).grid(row=3, column=10)
Button(tp, text='+', command=lambda: change('Benjamin Miller', 'YC', bm_yc_var, '+')).grid(row=3, column=11)
Button(tp, text='-', command=lambda: change('Benjamin Miller', 'RC', bm_rc_var, '-')).grid(row=3, column=12)
Label(tp, textvariable=bm_rc_var).grid(row=3, column=13)
Button(tp, text='+', command=lambda: change('Benjamin Miller', 'RC', bm_rc_var, '+')).grid(row=3, column=14)
# Edit function for "Jordan Terlato"
def edit_jt():
# Creating a new window for data editing
tp = Toplevel(root)
# Packing a label to display name
Label(tp, text='Jordan Terlato').grid(row=0, column=0, columnspan=15)
# Edit buttons and value label for data editing
Button(tp, text='-', command=lambda: change('Jordan Terlato', 'Matches Played', jt_matches_var, '-')).grid(row=4, column=0)
Label(tp, textvariable=jt_matches_var).grid(row=4, column=1)
Button(tp, text='+', command=lambda: change('Jordan Terlato', 'Matches Played', jt_matches_var, '+')).grid(row=4, column=2)
Button(tp, text='-', command=lambda: change('Jordan Terlato', 'Goals', jt_goals_var, '-')).grid(row=4, column=3)
Label(tp, textvariable=jt_goals_var).grid(row=4, column=4)
Button(tp, text='+', command=lambda: change('Jordan Terlato', 'Goals', jt_goals_var, '+')).grid(row=4, column=5)
Button(tp, text='-', command=lambda: change('Jordan Terlato', 'Assists', jt_assists_var, '-')).grid(row=4, column=6)
Label(tp, textvariable=jt_assists_var).grid(row=4, column=7)
Button(tp, text='+', command=lambda: change('Jordan Terlato', 'Assists', jt_assists_var, '+')).grid(row=4, column=8)
Button(tp, text='-', command=lambda: change('Jordan Terlato', 'YC', jt_yc_var, '-')).grid(row=4, column=9)
Label(tp, textvariable=jt_yc_var).grid(row=4, column=10)
Button(tp, text='+', command=lambda: change('Jordan Terlato', 'YC', jt_yc_var, '+')).grid(row=4, column=11)
Button(tp, text='-', command=lambda: change('Jordan Terlato', 'RC', jt_rc_var, '-')).grid(row=4, column=12)
Label(tp, textvariable=jt_rc_var).grid(row=4, column=13)
Button(tp, text='+', command=lambda: change('Jordan Terlato', 'RC', jt_rc_var, '+')).grid(row=4, column=14)
# Edit function for "Arki Gantzos"
def edit_ag():
# Creating a new window for data editing
tp = Toplevel(root)
# Packing a label to display name
Label(tp, text='Arki Gantzos').grid(row=0, column=0, columnspan=15)
# Edit buttons and value label for data editing
Button(tp, text='-', command=lambda: change('Arki Gantzos', 'Matches Played', ag_matches_var, '-')).grid(row=5, column=0)
Label(tp, textvariable=ag_matches_var).grid(row=5, column=1)
Button(tp, text='+', command=lambda: change('Arki Gantzos', 'Matches Played', ag_matches_var, '+')).grid(row=5, column=2)
Button(tp, text='-', command=lambda: change('Arki Gantzos', 'Goals', ag_goals_var, '-')).grid(row=5, column=3)
Label(tp, textvariable=ag_goals_var).grid(row=5, column=4)
Button(tp, text='+', command=lambda: change('Arki Gantzos', 'Goals', ag_goals_var, '+')).grid(row=5, column=5)
Button(tp, text='-', command=lambda: change('Arki Gantzos', 'Assists', ag_assists_var, '-')).grid(row=5, column=6)
Label(tp, textvariable=ag_assists_var).grid(row=5, column=7)
Button(tp, text='+', command=lambda: change('Arki Gantzos', 'Assists', ag_assists_var, '+')).grid(row=5, column=8)
Button(tp, text='-', command=lambda: change('Arki Gantzos', 'YC', ag_yc_var, '-')).grid(row=5, column=9)
Label(tp, textvariable=ag_yc_var).grid(row=5, column=10)
Button(tp, text='+', command=lambda: change('Arki Gantzos', 'YC', ag_yc_var, '+')).grid(row=5, column=11)
Button(tp, text='-', command=lambda: change('Arki Gantzos', 'RC', ag_rc_var, '-')).grid(row=5, column=12)
Label(tp, textvariable=ag_rc_var).grid(row=5, column=13)
Button(tp, text='+', command=lambda: change('Arki Gantzos', 'RC', ag_rc_var, '+')).grid(row=5, column=14)
# Edit function for "Billy Houndalas"
def edit_bh():
# Creating a new window for data editing
tp = Toplevel(root)
# Packing a label to display name
Label(tp, text='Billy Houndalas').grid(row=0, column=0, columnspan=15)
# Edit buttons and value label for data editing
Button(tp, text='-', command=lambda: change('Billy Houndalas', 'Matches Played', bh_matches_var, '-')).grid(row=6, column=0)
Label(tp, textvariable=bh_matches_var).grid(row=6, column=1)
Button(tp, text='+', command=lambda: change('Billy Houndalas', 'Matches Played', bh_matches_var, '+')).grid(row=6, column=2)
Button(tp, text='-', command=lambda: change('Billy Houndalas', 'Goals', bh_goals_var, '-')).grid(row=6, column=3)
Label(tp, textvariable=bh_goals_var).grid(row=6, column=4)
Button(tp, text='+', command=lambda: change('Billy Houndalas', 'Goals', bh_goals_var, '+')).grid(row=6, column=5)
Button(tp, text='-', command=lambda: change('Billy Houndalas', 'Assists', bh_assists_var, '-')).grid(row=6, column=6)
Label(tp, textvariable=bh_assists_var).grid(row=6, column=7)
Button(tp, text='+', command=lambda: change('Billy Houndalas', 'Assists', bh_assists_var, '+')).grid(row=6, column=8)
Button(tp, text='-', command=lambda: change('Billy Houndalas', 'YC', bh_yc_var, '-')).grid(row=6, column=9)
Label(tp, textvariable=bh_yc_var).grid(row=6, column=10)
Button(tp, text='+', command=lambda: change('Billy Houndalas', 'YC', bh_yc_var, '+')).grid(row=6, column=11)
Button(tp, text='-', command=lambda: change('Billy Houndalas', 'RC', bh_rc_var, '-')).grid(row=6, column=12)
Label(tp, textvariable=bh_rc_var).grid(row=6, column=13)
Button(tp, text='+', command=lambda: change('Billy Houndalas', 'RC', bh_rc_var, '+')).grid(row=6, column=14)
# Edit function for "Hayato Uematsu"
def edit_hu():
# Creating a new window for data editing
tp = Toplevel(root)
# Packing a label to display name
Label(tp, text='Hayato Uematsu').grid(row=0, column=0, columnspan=15)
# Edit buttons and value label for data editing
Button(tp, text='-', command=lambda: change('Hayato Uematsu', 'Matches Played', hu_matches_var, '-')).grid(row=7, column=0)
Label(tp, textvariable=hu_matches_var).grid(row=7, column=1)
Button(tp, text='+', command=lambda: change('Hayato Uematsu', 'Matches Played', hu_matches_var, '+')).grid(row=7, column=2)
Button(tp, text='-', command=lambda: change('Hayato Uematsu', 'Goals', hu_goals_var, '-')).grid(row=7, column=3)
Label(tp, textvariable=hu_goals_var).grid(row=7, column=4)
Button(tp, text='+', command=lambda: change('Hayato Uematsu', 'Goals', hu_goals_var, '+')).grid(row=7, column=5)
Button(tp, text='-', command=lambda: change('Hayato Uematsu', 'Assists', hu_assists_var, '-')).grid(row=7, column=6)
Label(tp, textvariable=hu_assists_var).grid(row=7, column=7)
Button(tp, text='+', command=lambda: change('Hayato Uematsu', 'Assists', hu_assists_var, '+')).grid(row=7, column=8)
Button(tp, text='-', command=lambda: change('Hayato Uematsu', 'YC', hu_yc_var, '-')).grid(row=7, column=9)
Label(tp, textvariable=hu_yc_var).grid(row=7, column=10)
Button(tp, text='+', command=lambda: change('Hayato Uematsu', 'YC', hu_yc_var, '+')).grid(row=7, column=11)
Button(tp, text='-', command=lambda: change('Hayato Uematsu', 'RC', hu_rc_var, '-')).grid(row=7, column=12)
Label(tp, textvariable=hu_rc_var).grid(row=7, column=13)
Button(tp, text='+', command=lambda: change('Hayato Uematsu', 'RC', hu_rc_var, '+')).grid(row=7, column=14)
# Edit function for "Mark Boccari"
def edit_mb():
# Creating a new window for data editing
tp = Toplevel(root)
# Packing a label to display name
Label(tp, text='Mark Boccari').grid(row=0, column=0, columnspan=15)
# Edit buttons and value label for data editing
Button(tp, text='-', command=lambda: change('Mark Boccari', 'Matches Played', mb_matches_var, '-')).grid(row=8, column=0)
Label(tp, textvariable=mb_matches_var).grid(row=8, column=1)
Button(tp, text='+', command=lambda: change('Mark Boccari', 'Matches Played', mb_matches_var, '+')).grid(row=8, column=2)
Button(tp, text='-', command=lambda: change('Mark Boccari', 'Goals', mb_goals_var, '-')).grid(row=8, column=3)
Label(tp, textvariable=mb_goals_var).grid(row=8, column=4)
Button(tp, text='+', command=lambda: change('Mark Boccari', 'Goals', mb_goals_var, '+')).grid(row=8, column=5)
Button(tp, text='-', command=lambda: change('Mark Boccari', 'Assists', mb_assists_var, '-')).grid(row=8, column=6)
Label(tp, textvariable=mb_assists_var).grid(row=8, column=7)
Button(tp, text='+', command=lambda: change('Mark Boccari', 'Assists', mb_assists_var, '+')).grid(row=8, column=8)
Button(tp, text='-', command=lambda: change('Mark Boccari', 'YC', mb_yc_var, '-')).grid(row=8, column=9)
Label(tp, textvariable=mb_yc_var).grid(row=8, column=10)
Button(tp, text='+', command=lambda: change('Mark Boccari', 'YC', mb_yc_var, '+')).grid(row=8, column=11)
Button(tp, text='-', command=lambda: change('Mark Boccari', 'RC', mb_rc_var, '-')).grid(row=8, column=12)
Label(tp, textvariable=mb_rc_var).grid(row=8, column=13)
Button(tp, text='+', command=lambda: change('Mark Boccari', 'RC', mb_rc_var, '+')).grid(row=8, column=14)
# Edit function for "Oliver Gibson"
def edit_og():
# Creating a new window for data editing
tp = Toplevel(root)
# Packing a label to display name
Label(tp, text='Oliver Gibson').grid(row=0, column=0, columnspan=15)
# Edit buttons and value label for data editing
Button(tp, text='-', command=lambda: change('Oliver Gibson', 'Matches Played', og_matches_var, '-')).grid(row=9, column=0)
Label(tp, textvariable=og_matches_var).grid(row=9, column=1)
Button(tp, text='+', command=lambda: change('Oliver Gibson', 'Matches Played', og_matches_var, '+')).grid(row=9, column=2)
Button(tp, text='-', command=lambda: change('Oliver Gibson', 'Goals', og_goals_var, '-')).grid(row=9, column=3)
Label(tp, textvariable=og_goals_var).grid(row=9, column=4)
Button(tp, text='+', command=lambda: change('Oliver Gibson', 'Goals', og_goals_var, '+')).grid(row=9, column=5)
Button(tp, text='-', command=lambda: change('Oliver Gibson', 'Assists', og_assists_var, '-')).grid(row=9, column=6)
Label(tp, textvariable=og_assists_var).grid(row=9, column=7)
Button(tp, text='+', command=lambda: change('Oliver Gibson', 'Assists', og_assists_var, '+')).grid(row=9, column=8)
Button(tp, text='-', command=lambda: change('Oliver Gibson', 'YC', og_yc_var, '-')).grid(row=9, column=9)
Label(tp, textvariable=og_yc_var).grid(row=9, column=10)
Button(tp, text='+', command=lambda: change('Oliver Gibson', 'YC', og_yc_var, '+')).grid(row=9, column=11)
Button(tp, text='-', command=lambda: change('Oliver Gibson', 'RC', og_rc_var, '-')).grid(row=9, column=12)
Label(tp, textvariable=og_rc_var).grid(row=9, column=13)
Button(tp, text='+', command=lambda: change('Oliver Gibson', 'RC', og_rc_var, '+')).grid(row=9, column=14)
# Edit function for "Zaid Khaleqi"
def edit_zk():
# Creating a new window for data editing
tp = Toplevel(root)
# Packing a label to display name
Label(tp, text='Zaid Khaleqi').grid(row=0, column=0, columnspan=15)
# Edit buttons and value label for data editing
Button(tp, text='-', command=lambda: change('Zaid Khaleqi', 'Matches Played', zk_matches_var, '-')).grid(row=10, column=0)
Label(tp, textvariable=zk_matches_var).grid(row=10, column=1)
Button(tp, text='+', command=lambda: change('Zaid Khaleqi', 'Matches Played', zk_matches_var, '+')).grid(row=10, column=2)
Button(tp, text='-', command=lambda: change('Zaid Khaleqi', 'Goals', zk_goals_var, '-')).grid(row=10, column=3)
Label(tp, textvariable=zk_goals_var).grid(row=10, column=4)
Button(tp, text='+', command=lambda: change('Zaid Khaleqi', 'Goals', zk_goals_var, '+')).grid(row=10, column=5)
Button(tp, text='-', command=lambda: change('Zaid Khaleqi', 'Assists', zk_assists_var, '-')).grid(row=10, column=6)
Label(tp, textvariable=zk_assists_var).grid(row=10, column=7)
Button(tp, text='+', command=lambda: change('Zaid Khaleqi', 'Assists', zk_assists_var, '+')).grid(row=10, column=8)
Button(tp, text='-', command=lambda: change('Zaid Khaleqi', 'YC', zk_yc_var, '-')).grid(row=10, column=9)
Label(tp, textvariable=zk_yc_var).grid(row=10, column=10)
Button(tp, text='+', command=lambda: change('Zaid Khaleqi', 'YC', zk_yc_var, '+')).grid(row=10, column=11)
Button(tp, text='-', command=lambda: change('Zaid Khaleqi', 'RC', zk_rc_var, '-')).grid(row=10, column=12)
Label(tp, textvariable=zk_rc_var).grid(row=10, column=13)
Button(tp, text='+', command=lambda: change('Zaid Khaleqi', 'RC', zk_rc_var, '+')).grid(row=9, column=14)
# initiating Tk class which also creates a window
root = Tk()
# Labels
Label(text="Chelsea FC Player Statistics", font=('bold', 15), fg="blue",).grid(row=0, column=1)
# Player Names Labels
Label(text="Player Names", font='Helvetica 13 bold').grid(columnspan=1, row=1, column=1)
Label(text="Daniel Keelagher").grid(columnspan=1, row=2, column=1)
Label(text="Joseph Keelagher").grid(columnspan=1, row=3, column=1)
Label(text="Benjamin Miller").grid(columnspan=1, row=4, column=1)
Label(text="Jordan Terlato").grid(columnspan=1, row=5, column=1)
Label(text="Arki Gantzos").grid(columnspan=1, row=6, column=1)
Label(text="Billy Houndalas").grid(columnspan=1, row=7, column=1)
Label(text="Hayato Uematsu").grid(columnspan=1, row=8, column=1)
Label(text="Mark Boccari").grid(columnspan=1, row=9, column=1)
Label(text="Oliver Gibson").grid(columnspan=1, row=10, column=1)
Label(text="Zaid Khaleqi").grid(columnspan=1, row=11, column=1)
# Matches Played Labels
Label(text="Matches Played", font='Helvetica 13 bold').grid(columnspan=1, row=1, column=2)
# setting up an IntVar for matches
dk_matches_var = IntVar()
Label(textvariable=dk_matches_var).grid(columnspan=1, row=2, column=2)
jk_matches_var = IntVar()
Label(textvariable=jk_matches_var).grid(columnspan=1, row=3, column=2)
bm_matches_var = IntVar()
Label(textvariable=bm_matches_var).grid(columnspan=1, row=4, column=2)
jt_matches_var = IntVar()
Label(textvariable=jt_matches_var).grid(columnspan=1, row=5, column=2)
ag_matches_var = IntVar()
Label(textvariable=ag_matches_var).grid(columnspan=1, row=6, column=2)
bh_matches_var = IntVar()
Label(textvariable=bh_matches_var).grid(columnspan=1, row=7, column=2)
hu_matches_var = IntVar()
Label(textvariable=hu_matches_var).grid(columnspan=1, row=8, column=2)
mb_matches_var = IntVar()
Label(textvariable=mb_matches_var).grid(columnspan=1, row=9, column=2)
og_matches_var = IntVar()
Label(textvariable=og_matches_var).grid(columnspan=1, row=10, column=2)
zk_matches_var = IntVar()
Label(textvariable=zk_matches_var).grid(columnspan=1, row=11, column=2)
# Goals Labels
Label(text="Goals", font='Helvetica 13 bold').grid(row=1, column=3)
# setting up an IntVar for goals
dk_goals_var = IntVar()
Label(textvariable=dk_goals_var).grid(columnspan=1, row=2, column=3)
jk_goals_var = IntVar()
Label(textvariable=jk_goals_var).grid(columnspan=1, row=3, column=3)
bm_goals_var = IntVar()
Label(textvariable=bm_goals_var).grid(columnspan=1, row=4, column=3)
jt_goals_var = IntVar()
Label(textvariable=jt_goals_var).grid(columnspan=1, row=5, column=3)
ag_goals_var = IntVar()
Label(textvariable=ag_goals_var).grid(columnspan=1, row=6, column=3)
bh_goals_var = IntVar()
Label(textvariable=bh_goals_var).grid(columnspan=1, row=7, column=3)
hu_goals_var = IntVar()
Label(textvariable=hu_goals_var).grid(columnspan=1, row=8, column=3)
mb_goals_var = IntVar()
Label(textvariable=mb_goals_var).grid(columnspan=1, row=9, column=3)
og_goals_var = IntVar()
Label(textvariable=og_goals_var).grid(columnspan=1, row=10, column=3)
zk_goals_var = IntVar()
Label(textvariable=zk_goals_var).grid(columnspan=1, row=11, column=3)
# Assists Labels
Label(text="Assists", font='Helvetica 13 bold').grid(columnspan=1, row=1, column=4)
# setting up an IntVar for assists
dk_assists_var = IntVar()
Label(textvariable=dk_assists_var).grid(columnspan=1, row=2, column=4)
jk_assists_var = IntVar()
Label(textvariable=jk_assists_var).grid(columnspan=1, row=3, column=4)
bm_assists_var = IntVar()
Label(textvariable=bm_assists_var).grid(columnspan=1, row=4, column=4)
jt_assists_var = IntVar()
Label(textvariable=jt_assists_var).grid(columnspan=1, row=5, column=4)
ag_assists_var = IntVar()
Label(textvariable=ag_assists_var).grid(columnspan=1, row=6, column=4)
bh_assists_var = IntVar()
Label(textvariable=bh_assists_var).grid(columnspan=1, row=7, column=4)
hu_assists_var = IntVar()
Label(textvariable=hu_assists_var).grid(columnspan=1, row=8, column=4)
mb_assists_var = IntVar()
Label(textvariable=mb_assists_var).grid(columnspan=1, row=9, column=4)
og_assists_var = IntVar()
Label(textvariable=og_assists_var).grid(columnspan=1, row=10, column=4)
zk_assists_var = IntVar()
Label(textvariable=zk_assists_var).grid(columnspan=1, row=11, column=4)
# YellowCards Labels
Label(text="YC", font='Helvetica 13 bold').grid(columnspan=1, row=1, column=5)
# setting up an IntVar for yellow cards
dk_yc_var = IntVar()
Label(textvariable=dk_yc_var).grid(columnspan=1, row=2, column=5)
jk_yc_var = IntVar()
Label(textvariable=jk_yc_var).grid(columnspan=1, row=3, column=5)
bm_yc_var = IntVar()
Label(textvariable=bm_yc_var).grid(columnspan=1, row=4, column=5)
jt_yc_var = IntVar()
Label(textvariable=jt_yc_var).grid(columnspan=1, row=5, column=5)
ag_yc_var = IntVar()
Label(textvariable=ag_yc_var).grid(columnspan=1, row=6, column=5)
bh_yc_var = IntVar()
Label(textvariable=bh_yc_var).grid(columnspan=1, row=7, column=5)
hu_yc_var = IntVar()
Label(textvariable=hu_yc_var).grid(columnspan=1, row=8, column=5)
mb_yc_var = IntVar()
Label(textvariable=mb_yc_var).grid(columnspan=1, row=9, column=5)
og_yc_var = IntVar()
Label(textvariable=og_yc_var).grid(columnspan=1, row=10, column=5)
zk_yc_var = IntVar()
Label(textvariable=zk_yc_var).grid(columnspan=1, row=11, column=5)
# RedCards Labels
Label(text="RC", font='Helvetica 13 bold').grid(columnspan=1, row=1, column=6)
# setting up an IntVar for red cards
dk_rc_var = IntVar()
Label(textvariable=dk_rc_var).grid(columnspan=1, row=2, column=6)
jk_rc_var = IntVar()
Label(textvariable=jk_rc_var).grid(columnspan=1, row=3, column=6)
bm_rc_var = IntVar()
Label(textvariable=bm_rc_var).grid(columnspan=1, row=4, column=6)
jt_rc_var = IntVar()
Label(textvariable=jt_rc_var).grid(columnspan=1, row=5, column=6)
ag_rc_var = IntVar()
Label(textvariable=ag_rc_var).grid(columnspan=1, row=6, column=6)
bh_rc_var = IntVar()
Label(textvariable=bh_rc_var).grid(columnspan=1, row=7, column=6)
hu_rc_var = IntVar()
Label(textvariable=hu_rc_var).grid(columnspan=1, row=8, column=6)
mb_rc_var = IntVar()
Label(textvariable=mb_rc_var).grid(columnspan=1, row=9, column=6)
og_rc_var = IntVar()
Label(textvariable=og_rc_var).grid(columnspan=1, row=10, column=6)
zk_rc_var = IntVar()
Label(textvariable=zk_rc_var).grid(columnspan=1, row=11, column=6)
# Buttons
Button(root, text="Edit", command=edit_dk).grid(columnspan=1, row=2, column=7)
Button(root, text="Edit", command=edit_jk).grid(columnspan=1, row=3, column=7)
Button(root, text="Edit", command=edit_bm).grid(columnspan=1, row=4, column=7)
Button(root, text="Edit", command=edit_jt).grid(columnspan=1, row=5, column=7)
Button(root, text="Edit", command=edit_ag).grid(columnspan=1, row=6, column=7)
Button(root, text="Edit", command=edit_bh).grid(columnspan=1, row=7, column=7)
Button(root, text="Edit", command=edit_hu).grid(columnspan=1, row=8, column=7)
Button(root, text="Edit", command=edit_mb).grid(columnspan=1, row=9, column=7)
Button(root, text="Edit", command=edit_og).grid(columnspan=1, row=10, column=7)
Button(root, text="Edit", command=edit_zk).grid(columnspan=1, row=11, column=7)
# Main loop of tkinter
root.mainloop()
【问题讨论】:
-
由于所有玩家都有相同的信息集,您可以使用单个通用函数来编辑信息,而不是为每个玩家单独使用函数。
-
请尝试将此代码缩减为minimal reproducible example。那里有很多与问题没有直接关系的代码。
-
您可以使用
tkinter.simpledialog.askstring()获取新玩家名称。 -
@acw1668 好吧,我实际上给了他 3 个选项(包括这个,因为他显然不理解另一个)关于如何在另一个答案 here 中更好地编辑玩家,所以我会说他缺乏能够做到这一点的基础知识(在当前问题中),所以最好的办法是观看关于 tkinter 的教程,实际上是基本的 python 和顺便说一句,我会说,从我在该答案中给出的编辑选项中它是制作
add new player函数也很容易 -
@Matiiss 这只是针对学校评估的任务。所以我想知道如何才能添加新的播放器功能。我知道我不擅长编码,我只是想要一些帮助。