Не могу получить значение от Radiobutton - PullRequest
0 голосов
/ 10 апреля 2019

Когда я запускаю этот код:

currentquestion = 0
currentcheckbox = 1
which_radio_var = StringVar(inside_test_root)

while currentquestion < len(questions):
                    print('currentcheckbox', currentcheckbox)
                    Radiobutton(inside_test_root, text=questions[currentquestion], value=currentcheckbox, variable=which_radio_var, indicatoron=0, wraplength=30).grid(row=currentquestion+1, column=0)
                    currentquestion += 2
                    currentcheckbox += 1

x = which_radio_var.get()

Я получаю, что радиокнопки работают нормально, и все работает нормально, кроме того, когда я пытаюсь проверить эти радиокнопки с кодом:

Button(inside_test_root, text='oof', command=print(x)).grid(column = 77, row = 77)

Ничего не печатает. Это как-то связано с природой, которую я сделал радиокнопками? Мне нужен способ не знать количество кнопок, которые производятся заранее. Любая помощь будет высоко ценится, спасибо

1 Ответ

0 голосов
/ 11 апреля 2019

Ответ, как сказал Джейсонхарпер, я пропустил лямбду, что означает, что я вызываю функцию печати в первый раз и никогда больше

"command = print (x) означает печатать x прямо сейчас, ииспользуйте возвращаемое значение функции print () (которая отсутствует) в качестве команды, выполняемой при нажатии кнопки. command = lambda: print (which_radio_var.get ()) выполнит эту работу. "

Обновленный код теперь: (переменная 'x' стала 'radio', чтобы соответствовать остальной части моей программы)

                if questiontype == 'Multiple Choice':
                    currentquestion = 0
                    currentcheckbox = 1
                    which_radio_var = StringVar(inside_test_root)
                    print (which_radio_var)
                    while currentquestion < len(questions):
                        print('currentcheckbox', currentcheckbox)
                        Radiobutton(inside_test_root, text=questions[currentquestion], value=currentcheckbox, variable=which_radio_var, indicatoron=0, wraplength=30).grid(row=currentquestion+1, column=0)
                        currentquestion += 2
                        currentcheckbox += 1
                        print(which_radio_var.get())
                    radio = which_radio_var.get()
                    Button(inside_test_root, text='oof', command=lambda: print(radio)).grid(column = 77, row = 77)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...