变量为 StringVar 时程序启动时未选中的单选按钮
Unchecked radiobuttons when the program starts while the variable is StringVar
这里我在程序启动时检查了所有单选按钮。但是,我希望首先检查其中 none 个,然后只有用户可以选择其中一个:
from tkinter import *
root = Tk()
var = StringVar()
l = Label(root)
l.pack()
def f():
l.config(text=var.get())
rb1 = Radiobutton(root, text="First", variable=var, value='a', command=f)
rb1.pack()
rb2 = Radiobutton(root, text="Second", variable=var, value='b', command=f)
rb2.pack()
但与 IntVar 不一样:
from tkinter import *
root = Tk()
var = IntVar()
l = Label(root)
l.pack()
def f():
l.config(text=var.get())
rb1 = Radiobutton(root, text="First", variable=var, value=1, command=f)
rb1.pack()
rb2 = Radiobutton(root, text="Second", variable=var, value=2, command=f)
rb2.pack()
当我 运行 这个程序按我想要的方式工作时 -- none 单选按钮在程序启动时被检查,我决定选择其中之一。
但是当变量是StringVar时,就不行了。我想弄清楚为什么它没有。我在几个来源中寻找任何解决方案,但我找不到任何有用的东西。所以决定在这里问问。任何帮助将不胜感激!
您应该能够将单选按钮设置为“ ” == "empty var",以便选择 none,但这没有意义,正如@bryan Oakley 所提到的。
我不是在最佳实践中通过向列表添加值来创建单选按钮,但这应该允许您拥有未选择的单选按钮
from tkinter import *
root = Tk()
def f():
l.config(text=var.get())
var = StringVar()
var.set(' ') #EVEN without the None value, this will allow empty radiobuttons on init. NOT Recommended
values = ['None', 'a', 'b']
l = Label(root, width=20)
l.pack()
for vset in values:
rb = Radiobutton(root, text="First", variable=var, value=vset, command=f)
rb.pack()
root.mainloop()
这里我在程序启动时检查了所有单选按钮。但是,我希望首先检查其中 none 个,然后只有用户可以选择其中一个:
from tkinter import *
root = Tk()
var = StringVar()
l = Label(root)
l.pack()
def f():
l.config(text=var.get())
rb1 = Radiobutton(root, text="First", variable=var, value='a', command=f)
rb1.pack()
rb2 = Radiobutton(root, text="Second", variable=var, value='b', command=f)
rb2.pack()
但与 IntVar 不一样:
from tkinter import *
root = Tk()
var = IntVar()
l = Label(root)
l.pack()
def f():
l.config(text=var.get())
rb1 = Radiobutton(root, text="First", variable=var, value=1, command=f)
rb1.pack()
rb2 = Radiobutton(root, text="Second", variable=var, value=2, command=f)
rb2.pack()
当我 运行 这个程序按我想要的方式工作时 -- none 单选按钮在程序启动时被检查,我决定选择其中之一。
但是当变量是StringVar时,就不行了。我想弄清楚为什么它没有。我在几个来源中寻找任何解决方案,但我找不到任何有用的东西。所以决定在这里问问。任何帮助将不胜感激!
您应该能够将单选按钮设置为“ ” == "empty var",以便选择 none,但这没有意义,正如@bryan Oakley 所提到的。
我不是在最佳实践中通过向列表添加值来创建单选按钮,但这应该允许您拥有未选择的单选按钮
from tkinter import *
root = Tk()
def f():
l.config(text=var.get())
var = StringVar()
var.set(' ') #EVEN without the None value, this will allow empty radiobuttons on init. NOT Recommended
values = ['None', 'a', 'b']
l = Label(root, width=20)
l.pack()
for vset in values:
rb = Radiobutton(root, text="First", variable=var, value=vset, command=f)
rb.pack()
root.mainloop()