Tkinter的Radiobutton组件

Radiobutton组件跟Checkbutton的用法基本一致,唯一不同的是Radiobutton实现的是单选的效果

要实现这种互斥额效果:

同一组内的所有Radiobutton只能共享一个variable选项,并且需要设置不同的value选项值

#导入模块

from tkinter import *

#创建主窗口
master = Tk()
#新建一个变量

v = IntVar()


Radiobutton(master, text="One", variable=v, value=1).pack(anchor=W)
Radiobutton(master, text="Two", variable=v, value=2).pack(anchor=W)
Radiobutton(master, text="Three", variable=v, value=3).pack(anchor=W)


mainloop()

pack()的ancher选项:

用于指定显示位置,可以设置为N,NE,E,SE,S,SW,W,NW,CENTER,这与地理中表示位置一样

Tkinter的Radiobutton组件


运行上述代码:

Tkinter的Radiobutton组件


如果有多个选项,可以使用循环来处理,这会使得代码更加简洁

from tkinter import *

master = Tk()


LANGS = [
    ("Python", 1),
    ("Perl", 2),
    ("Ruby", 3),
    ("Lua", 4)]

v = IntVar()
v.set(1)
for lang, num in LANGS:
    b = Radiobutton(master, text=lang, variable=v, value=num)
    b.pack(fill=X)

mainloop()


如果不喜欢前面这个小圈圈,还可以改成按钮的形式:

将indicatoron设置为False即可去掉前面的小圈圈

from tkinter import *

master = Tk()

LANGS = [
    ("Python", 1),
    ("Perl", 2),
    ("Ruby", 3),
    ("Lua", 4)]

v = IntVar()
v.set(1)
for lang, num in LANGS:
    b = Radiobutton(master, text=lang, variable=v, value=num, indicatoron=False)
    b.pack(fill=X)

mainloop()

运行:

Tkinter的Radiobutton组件