Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 默认单选按钮在第二个tkinter窗口中不工作_Python_Tkinter - Fatal编程技术网

Python 默认单选按钮在第二个tkinter窗口中不工作

Python 默认单选按钮在第二个tkinter窗口中不工作,python,tkinter,Python,Tkinter,我试图在tkinter的辅助窗口上放置一些单选按钮,但无法正确设置要选择的默认按钮。奇怪的是,如果我把按钮放在根窗口上,而不是任何其他窗口上,代码似乎工作正常 这是我的密码: from tkinter import * root = Tk() def radiobtnwindow(): window2 = Toplevel() y_n = StringVar() y_n.set('N') #y_n.set('Y') r1 = Radiobutton

我试图在tkinter的辅助窗口上放置一些单选按钮,但无法正确设置要选择的默认按钮。奇怪的是,如果我把按钮放在根窗口上,而不是任何其他窗口上,代码似乎工作正常

这是我的密码:

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()

请帮忙

只需将变量放在函数外部,然后从函数内部将其全局化,就可以解决问题

像这样:

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()

您的
StringVar
仅由局部变量引用,该变量在函数结束时消失-使
RadioButton
s没有地方存储其状态。