Переключатель по умолчанию не работает во втором окне tkinter - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь поместить некоторые переключатели в дополнительное окно в tkinter, но не могу правильно установить кнопку по умолчанию для выбора. Странно то, что код работает нормально, если я помещаю кнопки в окно root, но не в любое другое окно.

Вот мой код:

from tkinter import *

root = Tk()

def radiobtnwindow():
    window2 = Toplevel()

    y_n = StringVar()
    y_n.set('N')
    #y_n.set('Y')

    r1 = Radiobutton(window2, text='Yes', variable=y_n, value='Y').pack()
    r2 = Radiobutton(window2, text='No', variable=y_n, value='N').pack()

btn = Button(root, text='click', command=radiobtnwindow).pack()

root.mainloop()

Пожалуйста помощь!

1 Ответ

0 голосов
/ 31 января 2020

Ваша проблема решается простым помещением переменных вне функции, глобализирующих их изнутри функции.

Примерно так:

from tkinter import *

root = Tk()

y_n = StringVar()
y_n.set('N')
# y_n.set('Y')


def radiobtnwindow():
    global y_n

    window2 = Toplevel()

    r1 = Radiobutton(window2, text='Yes', variable=y_n, value='Y').pack()
    r2 = Radiobutton(window2, text='No', variable=y_n, value='N').pack()


btn = Button(root, text='click', command=radiobtnwindow).pack()

root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...