Python_tkinter_单选框(Radiobutton)与复选框(Checkbutton)

单选框(Radiobutton)与复选框(Checkbutton

thinter.Radiobutton(用于存放的父组件,属性参数...)

thinter.Checkbutton(用于存放的父组件,属性参数...)

具有以下属性

 

anchor           设置组件中文字的对其方式
background(bg)   指定组件的背景色。
borderwidth(bd)  指定组件边框的宽度。
bitmap           指定组件中的位图。
font             指定组件中文本的字体。
foreground(fg)   指定组件的前
height           指定组件的高度。
image            指定组件中的图片。
justify          指定组件中多行文本的对齐方式。
text             指定组件中的文本,可以使用“\n”表示换行。
value            指定组件被选中后(单选框)
onvalue          组件勾选状态值(复选框)
offvalue         组件取消勾选状态的值(复选框)
variable         指定组件所关联的变量。需要使用tkinter.IntVar()或者tkinter.StringVar()创建的值
width            指定组件的宽度。
command          设置复选框操作的触发命令(复选框)
indicatoron      缺省情况下为1,如果将这个属性改为0,则其外观是Sunken,表示按钮的弹起或按下两种状态
textvariable 通过回调函数修改按钮的值(复选框)

EG1:简单的单选框

# 创建单选框,单选框的内容是text,内容对应的值是value,g根据value选择
from tkinter import *
root = Tk()
radio1 = Radiobutton(root,text="选择1",value=True)
radio1.grid()
radio2 = Radiobutton(root,text="选择2",value=False)
radio2.grid()
radio3 = Radiobutton(root,text="选择3",value=False)
radio3.grid()
root.mainloop()

实行结果:

Python_tkinter_单选框(Radiobutton)与复选框(Checkbutton)_第1张图片

EG2:

# EG3:(Radiobutton)
from tkinter import *

root = Tk()
v = IntVar()
v.set(3)  # 在下面的variable,和radiobutton进行绑定,set的值和radiobutton组件中value设置的值比较,相同的那组是默认值(那个黑点的位置),set的范围从0开始,如果set的值超出了下面for循环的范围,没有默认值
for i in range(4):
    Radiobutton(root, variable=v, text="Radiobutton-{}".format(i), value=i).grid()

root.mainloop()

实行结果:

Python_tkinter_单选框(Radiobutton)与复选框(Checkbutton)_第2张图片

EG3:

# 补充,回调函数,重新设置数值
from tkinter import *
def callRadiobutton():
    # 设置数值
    v.set(1)
root = Tk()
v = IntVar()
# set函数是设置单选框中的初始值,set的参数和Radiobutton组件中的value比较,如果存在相同的情况,则为初始值
v.set(2)
# 三个单选框中都有相同的回调函数callRadiobutton,点击单选框后调用callRadiobutton,重新设置三个单选框的数值
Radiobutton(root, variable=v, text="Radiobutton-{}".format(1), value=1,command=callRadiobutton).grid()
Radiobutton(root, variable=v, text="Radiobutton-{}".format(1), value=2,command=callRadiobutton).grid()
Radiobutton(root, variable=v, text="Radiobutton-{}".format(1), value=3,command=callRadiobutton).grid()

root.mainloop()

实行结果:

Python_tkinter_单选框(Radiobutton)与复选框(Checkbutton)_第3张图片

Python_tkinter_单选框(Radiobutton)与复选框(Checkbutton)_第4张图片

EG4:

# 创建两个不同的组
from tkinter import *

root = Tk()
vlang = IntVar()
vos = IntVar()
vlang.set(1)  # 第一个组初始值为1
vos.set(2)  # 第一个组初始值为2
# 创建两个组,不同的组,各个按钮互不影响。
for i in [vlang, vos]:
    for j in range(3):
        Radiobutton(root, variable=i, text="Radiobutton_{}".format(j), value=j).grid()

root.mainloop()

实行结果:

Python_tkinter_单选框(Radiobutton)与复选框(Checkbutton)_第5张图片

EG6:

# EG6:如果同一个组中的按钮使用相同的value,则这两个按钮的工作方式完全相同
from tkinter import *

root = Tk()
v = IntVar()
v.set(1)
#例子中共有4个alue为1的值,当选中其中的一个时,其他三个也会被选中;选中除了这四个只外的按钮时,四个按钮全部取消
for i in range(3):
    Radiobutton(root, variable=v, text="Radiobutton_{}".format(i), value=1).grid()
for i in range(3):
    Radiobutton(root, variable=v, text="Radiobutton_{}".format(i), value=i).grid()

root.mainloop()

实行结果:

Python_tkinter_单选框(Radiobutton)与复选框(Checkbutton)_第6张图片

EG7:

# EG6:与Checkbutton类似,每个Radiobutton可以有自己的处理函数,每当点击按钮时,系统会调用相应的处理函数
from tkinter import *

root = Tk()
v = IntVar()
v.set(3)
def r1():
    print('call r1')
def r2():
    print('call r2')
def r3():
    print('call r3')
def r4():
    print('call r4')
j = 2
# 将四个函数的引用作为一个临时的列表,直接传给单选框组件中的command
# 注意虽然同时可以选中两个按钮,但每次点击按钮,执行的代码只有一次
for i in [r1, r2, r3, r4]:
    Radiobutton(root, variable=v, text="Radiobutton", value=j, command=i).grid()
    Radiobutton(root, variable=v, text="Radiobutton", value=j, command=i).grid()
    j += 1

root.mainloop()

实行结果:

Python_tkinter_单选框(Radiobutton)与复选框(Checkbutton)_第7张图片

EG8:

# 8.Radiobutton另一个比较实用的属性是indicatoron,缺省情况下为1,如果将这个属性改为0,则其外观是Sunken
# Radiobutton表示按钮的弹起或按下两种状态
from tkinter import *

root = Tk()
v = IntVar()
v.set(1)
for i in range(3):
    Radiobutton(root, variable=v, text="Radiobutton", value=i, indicatoron=0).grid()

root.mainloop()

实行结果:

Python_tkinter_单选框(Radiobutton)与复选框(Checkbutton)_第8张图片

 Checkbutton

EG1:

# Checkbutton又称为多选按钮,可以表示两种状态:On和Off,可以设置回调函数,每当点击此按钮时回调函数被调用
# 1.一个简单的Checkbutton例子
from tkinter import *

root = Tk()
Checkbutton(root, text="Checkbutton_1").grid()
Checkbutton(root, text="Checkbutton_2").grid()
Checkbutton(root, text="Checkbutton_3").grid()

root.mainloop()

实行结果:

Python_tkinter_单选框(Radiobutton)与复选框(Checkbutton)_第9张图片

EG2:

# 2.设置Checkbutton的回调函数
from tkinter import *
def call_Checkbutton_1():
    print("call_Checkbutton_1")
def call_Checkbutton_2():
    print("call_Checkbutton_2")
root = Tk()
# 只要是单击,都会触发调用对应的函数(不管Checkbutton的状态如何,此回调函数都会被调用)
Checkbutton(root, text="Checkbutton_1", command=call_Checkbutton_1).grid()
Checkbutton(root, text="Checkbutton_2", command=call_Checkbutton_2).grid()

root.mainloop()

实行结果:

EG3:

# 3.通过回调函数改变Checkbutton的显示文本text的值
from tkinter import *
def callCheckbutton():
    v.set("hello Checkbutton")
root = Tk()
v = StringVar()
v.set("Checkbutton")
# 绑定v到Checkbutton的属性textvariable
Checkbutton(root, text="Checkbutton", textvariable=v, command=callCheckbutton).grid()
root.mainloop()

实行结果:

Python_tkinter_单选框(Radiobutton)与复选框(Checkbutton)_第10张图片

Python_tkinter_单选框(Radiobutton)与复选框(Checkbutton)_第11张图片

EG4:

# 4.上述的textvariable使用方法与Button的用法完全相同,使用此例是为了区别Checkbutton的另外的一个属性variable,
# 此属性与textvariable不同,它是与这个控件本身绑定,Checkbutton自己有值:On和Off值,缺省状态On为1,Off为0,
# variable选中的时候的数值为1,否则为0(多选择时候,后台可以获得用户信息)
from tkinter import *

root = Tk()
v = IntVar()
a = StringVar
def callCheckbutton():
    print(v.get())
Checkbutton(root, variable=v, text="Checkbutton", command=callCheckbutton).grid()

root.mainloop()

实行结果:

EG5:

# 5.Checkbutton的值不仅仅是1或0,可以是其他类型的数值,可以通过onvalue和offvalue属性设置Checkbutton的状态值,
# 如下代码将On设置为'python',Off值设置为'Tkinter',程序的打印值将不再是0或1,而是'Tkinter’或‘python
from tkinter import *

root = Tk()
root.title("Checkbutton")
v = StringVar()
def callCheckbutton():
    print(v.get())
Checkbutton(root, variable=v, text="text-Checkbutton", onvalue="onvalue", offvalue="offvalue",
            command=callCheckbutton).grid()

root.mainloop()

实行结果:

Python_tkinter_单选框(Radiobutton)与复选框(Checkbutton)_第12张图片

Python_tkinter_单选框(Radiobutton)与复选框(Checkbutton)_第13张图片

Python_tkinter_单选框(Radiobutton)与复选框(Checkbutton)_第14张图片

 

你可能感兴趣的:(tkinter)