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()
实行结果:
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()
实行结果:
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()
实行结果:
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()
实行结果:
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()
实行结果:
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()
实行结果:
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()
实行结果:
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()
实行结果:
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()
实行结果:
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()
实行结果: