Python tkinter 变量在单选按钮中不起作用
Python tkinter variable not working in radiobutton
我有这个 code.That 给我用户通过单选按钮所做的选择。
但不幸的是它只选择零。
代码:
QueryResults=Tk.Tk()
row_no=0
Tk.Label(QueryResults,text="Name ").grid(row=row_no,column=0,padx=5,pady=10)
Tk.Label(QueryResults,text="Source ").grid(row=row_no,column=1,padx=5,pady=10)
Tk.Label(QueryResults,text="Destination ").grid(row=row_no,column=2,padx=5,pady=10)
Tk.Label(QueryResults,text="Source Time ").grid(row=row_no,column=3,padx=5,pady=10)
Tk.Label(QueryResults,text="Destination Time ").grid(row=row_no,column=4,padx=5,pady=10)
Tk.Label(QueryResults,text="Economy Fare(per person) ").grid(row=row_no,column=5,padx=5,pady=10)
Tk.Label(QueryResults,text="Executive Fare(per person) ").grid(row=row_no,column=6,padx=5,pady=10)
Tk.Label(QueryResults,text="Via ").grid(row=row_no,column=7,padx=5,pady=10)
ms=Tk.IntVar()
def sel2():
print ms.get()
for flight in Flights_record:
row_no=row_no+1
Tk.Radiobutton(QueryResults,text=flight["Name"],variable=ms,value=row_no+5,command=sel2).grid(row=row_no,column=0,padx=5,pady=10)
Tk.Label(QueryResults,text=values["Source"]).grid(row=row_no,column=1,padx=5,pady=10)
Tk.Label(QueryResults,text=values["Destination"]).grid(row=row_no,column=2,padx=5,pady=10)
Tk.Label(QueryResults,text=flight["Source Time"]).grid(row=row_no,column=3,padx=5,pady=10)
Tk.Label(QueryResults,text=flight["Destination Time"]).grid(row=row_no,column=4,padx=5,pady=10)
Tk.Label(QueryResults,text=flight["Economy Fare"]).grid(row=row_no,column=5,padx=5,pady=10)
Tk.Label(QueryResults,text=flight["Executive Fare"]).grid(row=row_no,column=6,padx=5,pady=10)
Tk.Label(QueryResults,text=" ,".join(flight["Via"])).grid(row=row_no,column=7,padx=5,pady=10)
def book_flight():
print Flights_record[ms.get()]
Tk.Button(QueryResults,text="Submit",command=book_flight).grid(row=row_no+1,columnspan=7,padx=5,pady=10)
QueryResults.mainloop()
输出:
0
0
0
0
0
0
(根据选择)。
为什么变量不起作用?
抱歉,我确实发现了我的错误。
ms=Tk.IntVar() needs to be ms=Tk.IntVar(QueryResults)
我有这个 code.That 给我用户通过单选按钮所做的选择。 但不幸的是它只选择零。
代码:
QueryResults=Tk.Tk()
row_no=0
Tk.Label(QueryResults,text="Name ").grid(row=row_no,column=0,padx=5,pady=10)
Tk.Label(QueryResults,text="Source ").grid(row=row_no,column=1,padx=5,pady=10)
Tk.Label(QueryResults,text="Destination ").grid(row=row_no,column=2,padx=5,pady=10)
Tk.Label(QueryResults,text="Source Time ").grid(row=row_no,column=3,padx=5,pady=10)
Tk.Label(QueryResults,text="Destination Time ").grid(row=row_no,column=4,padx=5,pady=10)
Tk.Label(QueryResults,text="Economy Fare(per person) ").grid(row=row_no,column=5,padx=5,pady=10)
Tk.Label(QueryResults,text="Executive Fare(per person) ").grid(row=row_no,column=6,padx=5,pady=10)
Tk.Label(QueryResults,text="Via ").grid(row=row_no,column=7,padx=5,pady=10)
ms=Tk.IntVar()
def sel2():
print ms.get()
for flight in Flights_record:
row_no=row_no+1
Tk.Radiobutton(QueryResults,text=flight["Name"],variable=ms,value=row_no+5,command=sel2).grid(row=row_no,column=0,padx=5,pady=10)
Tk.Label(QueryResults,text=values["Source"]).grid(row=row_no,column=1,padx=5,pady=10)
Tk.Label(QueryResults,text=values["Destination"]).grid(row=row_no,column=2,padx=5,pady=10)
Tk.Label(QueryResults,text=flight["Source Time"]).grid(row=row_no,column=3,padx=5,pady=10)
Tk.Label(QueryResults,text=flight["Destination Time"]).grid(row=row_no,column=4,padx=5,pady=10)
Tk.Label(QueryResults,text=flight["Economy Fare"]).grid(row=row_no,column=5,padx=5,pady=10)
Tk.Label(QueryResults,text=flight["Executive Fare"]).grid(row=row_no,column=6,padx=5,pady=10)
Tk.Label(QueryResults,text=" ,".join(flight["Via"])).grid(row=row_no,column=7,padx=5,pady=10)
def book_flight():
print Flights_record[ms.get()]
Tk.Button(QueryResults,text="Submit",command=book_flight).grid(row=row_no+1,columnspan=7,padx=5,pady=10)
QueryResults.mainloop()
输出: 0 0 0 0 0 0 (根据选择)。 为什么变量不起作用?
抱歉,我确实发现了我的错误。
ms=Tk.IntVar() needs to be ms=Tk.IntVar(QueryResults)