Python 如何获取多个单选按钮值
我计划使用动态单选按钮数作为SQL查询返回到DB的行数 如何为单选按钮动态编码“变量”,以便在选择时为所有单选按钮获得单独的值 对于DB返回的每个结果,我都有一个Yes/No单选按钮Python 如何获取多个单选按钮值,python,tkinter,radio-button,Python,Tkinter,Radio Button,我计划使用动态单选按钮数作为SQL查询返回到DB的行数 如何为单选按钮动态编码“变量”,以便在选择时为所有单选按钮获得单独的值 对于DB返回的每个结果,我都有一个Yes/No单选按钮 i = 0 for r in self.results : print(r) globals()[r[0]] = tk.IntVar() R1 = tk.Radiobutton(self.win1, text="Yes", variable=globals()[r[0]], value=1)
i = 0
for r in self.results :
print(r)
globals()[r[0]] = tk.IntVar()
R1 = tk.Radiobutton(self.win1, text="Yes", variable=globals()[r[0]], value=1)
R2 = tk.Radiobutton(self.win1, text="No", variable=globals()[r[0]], value=2)
R1.grid( column=2, row=i+2)
R2.grid( column=3, row=i+2)
item_Label = ttk.Label(self.win1, text=r[0])
item_Label.grid(column=0, row=i+2)
resp = globals()[r[0]].get()
print(resp)
i += 1
我得到的错误是“
其中object1是从DB返回的结果。我将尝试以类似的方式重现您的问题,希望您能理解 您可以做的是创建一个
IntVar()
列表,用于查询结果每行使用的每对单选按钮
import tkinter as tk
win = tk.Tk()
def show_values():
a = " ".join([str(i.get()) for i in values])
tk.Label(win, text=a).grid()
results = ["RB1: ", "RB2: ", "RB3: "]
values = [tk.IntVar() for i in range(len(results))]
i = 0
for r in results:
r1 = tk.Radiobutton(win, text="Yes", variable=values[i], value=1)
r2 = tk.Radiobutton(win, text="No", variable=values[i], value=2)
r1.grid(column=1, row=i)
r2.grid(column=2, row=i)
item_Label = tk.Label(win, text=r)
item_Label.grid(column=0, row=i)
i += 1
tk.Button(win, text='Show Values', command=show_values).grid(columnspan=2)
win.mainloop()
import tkinter as tk
win = tk.Tk()
def show_values():
a = " ".join([str(i.get()) for i in values])
tk.Label(win, text=a).grid()
results = ["RB1: ", "RB2: ", "RB3: "]
values = [tk.IntVar() for i in range(len(results))]
i = 0
for r in results:
r1 = tk.Radiobutton(win, text="Yes", variable=values[i], value=1)
r2 = tk.Radiobutton(win, text="No", variable=values[i], value=2)
r1.grid(column=1, row=i)
r2.grid(column=2, row=i)
item_Label = tk.Label(win, text=r)
item_Label.grid(column=0, row=i)
i += 1
tk.Button(win, text='Show Values', command=show_values).grid(columnspan=2)
win.mainloop()