赞
踩
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()
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
实行结果:
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()
实行结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。