问题已经更新,因为我收到了答案。 现在提出的问题是当我有两个"玩家"时,如何从csv文件中获取值。彼此相邻。
来自Tkinter进口* import csv
master = Tk()
b1 = StringVar()
v1 = StringVar()
v2 = StringVar()
v3 = StringVar()
b2 = StringVar()
v4 = StringVar()
v5 = StringVar()
v6 = StringVar()
a = Label(master, text="Player 1", font="Verdana 10 bold").grid(row=8, column=1, columnspan=2, pady=15)
b = Label(master, text="Player Name").grid(row=9, column=1, sticky='w')
c = Label(master, text="1st Service Percentage:").grid(row=10, column=1, sticky='w')
cc = Label(master, text="value", textvariable=v1)
d = Label(master, text="Points Won on 1st Serve: ").grid(row=11, column=1, sticky='w')
dd = Label(master, text="value", textvariable=v2)
e = Label(master, text="Points Won on 2nd serve:").grid(row=12, column=1, sticky='w')
ee = Label(master, text="value", textvariable=v3)
a22 = Label(master, text="Player 2", font="Verdana 10 bold").grid(row=8, column=3, columnspan=2, pady=15)
b22 = Label(master, text="Player Name").grid(row=9, column=3, sticky='w')
c22 = Label(master, text="1st Service Percentage:").grid(row=10, column=3, sticky='w')
cc22 = Label(master, text="value", textvariable=v4)
d22 = Label(master, text="Points Won on 1st Serve: ").grid(row=11, column=3, sticky='w')
dd22 = Label(master, text="value", textvariable=v5)
e22 = Label(master, text="Points Won on 2nd serve:").grid(row=12, column=3, sticky='w')
ee22 = Label(master, text="value", textvariable=v6)
def name():
with open("Service.csv") as fh:
for row in fh:
if (b1.get()) in row:
player_name = row[0:row.find(',')]
row = row.replace(player_name+',', '')
firstService = row[0:row.find(",")]
row = row.replace(firstService+',', '')
points_firstserve = row[0:row.find(",")]
row = row.replace(points_firstserve+',', '')
points_secondserve = row[0:row.find(",")]
row = row.replace(points_secondserve+',', '')
v1.set(firstService)
cc.grid(row=10, column=2, sticky='w')
v2.set(points_firstserve)
dd.grid(row=11, column=2, sticky='w')
v3.set(points_secondserve)
ee.grid(row=12, column=2, sticky='w')
if (b2.get()) in row:
player_name = row[0:row.find(',')]
row = row.replace(player_name + ',', '')
firstService = row[0:row.find(",")]
row = row.replace(firstService + ',', '')
points_firstserve = row[0:row.find(",")]
row = row.replace(points_firstserve + ',', '')
points_secondserve = row[0:row.find(",")]
row = row.replace(points_secondserve + ',', '')
v1.set(firstService)
cc.grid(row=10, column=2, sticky='w')
v2.set(points_firstserve)
dd.grid(row=11, column=2, sticky='w')
v3.set(points_secondserve)
ee.grid(row=12, column=2, sticky='w')
myb1 = Entry(master, textvariable=b1)
myb1.insert(10, "Andy Murray")
myb1.grid(row=9, column=2)
myb22 = Entry(master, textvariable=b2)
myb22.insert(10, "Novak Djokovic")
myb22.grid(row=9, column=4)
button1 = Button(master, text='Run', command=name, bg="light green", font="Verdana 9 bold")
button2 = Button(master, text='Quit', command=quit, bg="red", font="Verdana 9 bold")
button1.grid(row=15, column=2, ipadx=50, pady=10)
button2.grid(row=15, column=3, ipadx=50, pady=10, padx=5)
master.geometry("850x500+300+100")
master.bind('<Return>', name)
master.bind('<Escape>', quit)
mainloop()
答案 0 :(得分:1)
from tkinter import *
import csv
master = Tk()
b1 = StringVar()
v1 = StringVar()
v2 = StringVar()
v3 = StringVar()
a = Label(master, text="Player 1", font="Verdana 10 bold").grid(row=8, column=1, columnspan=2, pady=15)
b = Label(master, text="Player Name").grid(row=9, column=1, sticky='w')
c = Label(master, text="1st Service Percentage:").grid(row=10, column=1, sticky='w')
cc = Label(master, text="value", textvariable=v1)
d = Label(master, text="Points Won on 1st Serve: ").grid(row=11, column=1, sticky='w')
dd = Label(master, text="value", textvariable=v2)
e = Label(master, text="Points Won on 2nd serve:").grid(row=12, column=1, sticky='w')
ee = Label(master, text="value", textvariable=v3)
def name():
with open("Service.csv") as fh:
for row in fh:
if (b1.get()) in row:
player_name = row[0:row.find(',')]
row=row.replace(player_name+',','')
#print(row)
firstService=row[0:row.find(",")]
row=row.replace(firstService+',','')
points_firstserve=row[0:row.find(",")]
row=row.replace(points_firstserve+',','')
points_secondserve=row[0:row.find(",")]
row=row.replace(points_secondserve+',','')
#
v1.set(firstService)
cc.grid(row=10, column=2, sticky='w')
v2.set(points_firstserve)
dd.grid(row=11, column=2, sticky='w')
v3.set(points_secondserve)
ee.grid(row=12, column=2, sticky='w')
myb1 = Entry(master, textvariable=b1)
myb1.insert(10, "Andy Murray")
myb1.grid(row=9, column=2)
button1 = Button(master, text='Run', command=name, bg="light green", font="Verdana 9 bold")
button2 = Button(master, text='Quit', command=quit, bg="red", font="Verdana 9 bold")
button1.grid(row=15, column=2, ipadx=50, pady=10)
button2.grid(row=15, column=3, ipadx=50, pady=10, padx=5)
master.geometry("850x500+300+100")
master.bind('<Return>', name)
master.bind('<Escape>', quit)
mainloop()
这将从特定播放器的csv行中获取数字。我将值放在GUI中的值名称旁边。
希望这会有所帮助。
答案 1 :(得分:1)
这里我没有使用v1,v2和v3文本变量。在第一个玩家值旁边添加第二个玩家值。 输入“Andy Murray”点击Run下一步输入“Novak Djokovic” 命中运行。你会看到第二个玩家在第一个玩家价值旁边的结果。
from tkinter import *
import csv
master = Tk()
b1 = StringVar()
#v1 = StringVar()
#v2 = StringVar()
#v3 = StringVar()
a = Label(master, text="Player 1", font="Verdana 10 bold").grid(row=8, column=1, columnspan=2, pady=15)
b = Label(master, text="Player Name").grid(row=9, column=1, sticky='w')
c = Label(master, text="1st Service Percentage:").grid(row=10, column=1, sticky='w')
cc = Label(master, text="")
d = Label(master, text="Points Won on 1st Serve: ").grid(row=11, column=1, sticky='w')
dd = Label(master, text="")
e = Label(master, text="Points Won on 2nd serve:").grid(row=12, column=1, sticky='w')
ee = Label(master, text="")
def name():
with open("service.csv") as fh:
for row in fh:
if (b1.get()) in row:
player_name = row[0:row.find(',')]
row=row.replace(player_name+',','')
#print(row)
firstService=row[0:row.find(",")]
row=row.replace(firstService+',','')
points_firstserve=row[0:row.find(",")]
row=row.replace(points_firstserve+',','')
points_secondserve=row[0:row.find(",")]
row=row.replace(points_secondserve+',','')
cc['text'] += " "+firstService
#v1.set(firstService)
cc.grid(row=10, column=2, sticky='w')
#v2.set(points_firstserve)
dd['text'] += " "+points_firstserve
dd.grid(row=11, column=2, sticky='w')
#v3.set(points_secondserve)
ee['text'] += " "+points_secondserve
ee.grid(row=12, column=2, sticky='w')
myb1 = Entry(master, textvariable=b1)
myb1.insert(10, "Andy Murray")
myb1.grid(row=9, column=2)
button1 = Button(master, text='Run', command=name, bg="light green", font="Verdana 9 bold")
button2 = Button(master, text='Quit', command=quit, bg="red", font="Verdana 9 bold")
button1.grid(row=15, column=2, ipadx=50, pady=10)
button2.grid(row=15, column=3, ipadx=50, pady=10, padx=5)
master.geometry("850x500+300+100")
master.bind('<Return>', name)
master.bind('<Escape>', quit)
mainloop()