I'm trying to use radio buttons in python for the first time and am having trouble getting the value of the selected radio button.
print(test)
just prints out "lamp".
I already looked through a dozen topics on the same problem but could not find an answer.
tkinter
imported as tk
def additionalData(df: DataFrame):
global dataBox
dataBox = tk.Tk()
dataBox.title("Additional data")
dataBox.geometry("300x375 800 400")
dataBox.config(bg="lightgray")
sensorLoc = StringVar(value="lamp")
lblSensorLoc = tk.Label(dataBox, text="Sensor location:")
lblSensorLoc.grid(row=3,column=1,pady=25)
rdSL1 = tk.Radiobutton(dataBox, text="Ankle", variable=sensorLoc, value="Ankle", tristatevalue="x")
rdSL1.grid(row=3,column=2)
rdSL2 = tk.Radiobutton(dataBox, text="Foot", variable=sensorLoc, value="Foot", tristatevalue="x")
rdSL2.grid(row=4,column=2)
rdSL3 = tk.Radiobutton(dataBox, text="Shank", variable=sensorLoc, value="Shank", tristatevalue="x")
rdSL3.grid(row=5,column=2, pady=25)
test = sensorLoc.get()
btn_save = Button(dataBox, text="SAVE", command=lambda:
[
print(test)
])
btn_save.grid(row=7,column=2, pady=25)
I cut out most of the function to make it easier to read
CodePudding user response:
test = sensorLoc.get()
will set test to 'lamp' and that's it!
What you need is to update 'test' dynamically, like this.
test = sensorLoc.get
btn_save = tk.Button(dataBox, text="SAVE", command=lambda: [print(test())])
Now when button is pressed the current radiobutton value will be returned.