Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get the value of the selected radio button?

I would like to create 2 different groups of radio buttons. The user would select one option from either group. There would be a function that would get the values(strings) from the selected radio buttons and then print them. Here's my code but it doesn't work (i'm new to python).

from tkinter import *
root = Tk()
btn1 = "lol"
btn2 = "lel"
def funkcija():
    n = entry1.get()
    m = "null"
    X = btn1.get()
    Y = btn2.get()
    print("%s %s je %s %s." % (n, X, m, Y))


theLabel = Label(root, text="Vnesite količino in izberite prvo valuto.")
theLabel.grid(row=0, columnspan=3)

gumb1=Radiobutton(root,text="Euro",value = "euro",variable = "btn1").grid(row=2, column=1, sticky=W)
gumb2=Radiobutton(root,text="Dolar",value = "dolar",variable = "btn1").grid(row=3, column=1, sticky=W)
gumb3=Radiobutton(root,text="Funt",value = "funt",variable = "btn1").grid(row=4, column=1, sticky=W)

label3= Label(root, text="Izberite drugo valuto.")
label3.grid(row=6, columnspan=3)

label35= Label(root)
label35.grid(row=5, columnspan=3)

gumb4=Radiobutton(root,text="Euro",value = "euro",variable = "btn2").grid(row=7, column=1, sticky=W)
gumb5=Radiobutton(root,text="Dolar",value = "dolar",variable = "btn2").grid(row=8, column=1, sticky=W)
gumb6=Radiobutton(root,text="Funt",value = "funt",variable = "btn2").grid(row=9, column=1, sticky=W)

label1 = Label(root, text="Količina:")
label1.grid(row=1, sticky=E)
entry1 = Entry(root)
entry1.grid(row=1, column=1, sticky=W)

go = Button(root, text="Izračun", fg="white", bg="black", command=funkcija)
go.grid(row=10, columnspan=3)

root.mainloop()
like image 345
Zoxx Avatar asked Apr 19 '15 22:04

Zoxx


People also ask

How do I get the value of the selected radio button with angular?

Summary. So here, we've found that getting the value of the selected Radio Button with Angular requires that an event handler be set for the (change) attribute of each element. We then see that we have to inspect the event object that is passed to the change event handler.

How do I get the value of a radio button in react?

To set the default checked value of a radio button in React: Store the radio button value in the state. Initialize the state to the value of the default checked radio button. Set the checked property on each radio button conditionally, e.g. checked={selected === 'yes'} .

How do I get the value of a radio button in Python?

The radiobutton has only two values, either True or False. If we want to get the output to check which option the user has selected, then we can use the get() method. It returns the object that is defined as the variable.


1 Answers

In your radio button, analyze the parameters that you are passing:

gumb1 = Radiobutton(root,
                    text = "Euro",
                    value = "Euro",
                    variable = "btn2"

The parameters value and variable are what stores the data of the radio button. You've set your value option correctly. The interpreter will automatically set the variable with the value when the radio button is selected.

But here's where your issue is:

variable = "btn2"

"btn2" is a string. Not very useful though, is it? In fact, you're trying to perform methods on it that don't even exist. Such as here:

def funkcija():
    X = btn2.get()

In fact, taking this information, you almost got there!

At the top of your script, you need to set btn2 to Tkinter's StringVar, like so:

from tkinter import *
btn1 = StringVar()
btn2 = StringVar()

Now that's done, let's change our parameters in our radio buttons.

gumb1 = Radiobutton(root,
                text = "Euro",
                value = "Euro",
                variable = btn2

Now, Tkinter will automatically update the variable when it is selected. To get the value, do the same that you had done in your funkcija.

X = btn2.get()

And then the value of btn2 (which was updated by the radio buttons) will not be read, and stored into the variable X.

like image 197
Zizouz212 Avatar answered Nov 15 '22 21:11

Zizouz212