Вывод текста при изменении состояния Radiobutton Python

Делаю проект мини-тест, нужно чтобы когда состояние radiobutton'а var1 - менялось на ACTIVE, то в консоль выводился текст, не понимаю как это сделать?

var1 = Radiobutton(win, text='У меня отличное настроение', variable = varik, value = 1)
var2 = Radiobutton(win, text='Я чувствую небольшую грусть', variable = varik, value = 2)
var3 = Radiobutton(win, text='Мне грустно и тоскливо', variable = varik, value = 3)
var4 = Radiobutton(win, text='Я постоянно грущу, иногда без повода', variable = varik, 
value = 4)
if var1['state'] == ACTIVE:
print('var1 active')
var1.pack()
var2.pack()
var3.pack()
var4.pack()

Ответы (1 шт):

Автор решения: gil9red

При клике на радио-кнопки вызывается change:

from tkinter import *


win = Tk()

r_var = IntVar()
r_var.set(1)


def change():
    value = r_var.get()
    print(f'var{value} active')


r1 = Radiobutton(win, text='У меня отличное настроение', variable=r_var, command=change, value=1)
r2 = Radiobutton(win, text='Я чувствую небольшую грусть', variable=r_var, command=change, value=2)
r3 = Radiobutton(win, text='Мне грустно и тоскливо', variable=r_var, command=change, value=3)
r4 = Radiobutton(win, text='Я постоянно грущу, иногда без повода', variable=r_var, command=change, value=4)

r1.pack()
r2.pack()
r3.pack()
r4.pack()

win.mainloop()

Можно привязать функцию через bind, тогда в функцию будет передаваться событие, а него можно получить виджет

Пример:

from tkinter import *


win = Tk()

r_var = IntVar()
r_var.set(1)


def change(event):
    value = r_var.get()
    text = event.widget['text']
    print(f'var{value} active, widget={text!r}')


r1 = Radiobutton(win, text='У меня отличное настроение', variable=r_var, value=1)
r1.bind("<Button-1>", change)
r1.pack()

r2 = Radiobutton(win, text='Я чувствую небольшую грусть', variable=r_var, value=2)
r2.bind("<Button-1>", change)
r2.pack()

r3 = Radiobutton(win, text='Мне грустно и тоскливо', variable=r_var, value=3)
r3.bind("<Button-1>", change)
r3.pack()

r4 = Radiobutton(win, text='Я постоянно грущу, иногда без повода', variable=r_var, value=4)
r4.bind("<Button-1>", change)
r4.pack()

win.mainloop()
→ Ссылка