一 、控件Button、Checkbutton、Radiobutton
这3中控件都是按键控件
区别在于:
Button是一般的按键,按键按下后通过传入的回调函数实现按键效果
Checkbutton 可以用于实现选项选择
Radiobutton 可以实现对个选项中的单选
1、Button
对于Button控件,常用的控件属性如下:
anchor
类型:常量;
说明:控制按钮上内容的位置。使用N, NE, E, SE, S, SW, W, NW, or CENTER这些值之一。默认值是CENTER。
borderwidth (bd) :
类型:整数;
按钮边框的宽度。默认值与特定平台相关。但通常是1或2象素。按钮边 框的宽度。默认值与特定平台相关。但通常是1或2象素。
command
类型:回调;
说明:当按钮被按下时所调用的一个函数或方法。所回调的可以是一个函数、方法或别的可调用的Python对象。
justify
类型:常量;
说明:定义多行文本如何对齐。可取值有:LEFT, RIGHT, CENTER。
cursor
类型:光标;
说明:当鼠标移动到按钮上时所显示的光标。
font
类型:字体;
说明:按钮所使用的字体。按钮只能包含一种字体的文本。
padx, pady
类型:距离;
说明:指定文本或图象与按钮边框的间距。
relief
类型:常量;
说明:边框的装饰。
可能取值有GROOVE, RIDGE, FLAT,RAISED,SUNKEN。
state
类型:常量;
说明:按钮的状态:NORMAL, ACTIVE 或 DISABLED。默认值为NORMAL。
width, height
类型:距离;
说明:按钮的尺寸。如果按钮显示文本,尺寸使用文本的单位。如果按钮显示图象,尺寸以象素为单位(或屏幕的单位)。如果尺寸没指定,它将根据按钮的内容来计算。
#coding=utf-8
from Tkinter import *
#创建容器
tk=Tk()
tk.title("我的GUI界面学习")
#主界面容器
mainfarm=Frame()
mainfarm.pack()
lab1=Label(mainfarm,text="你好,这是我的第一个GUI界面")
lab1.pack()
def button1back_handle():
print "button1 down"
val=IntVar()
button1=Button(mainfarm,text="BUTTON1", #将按键放在主控件区域,并命名为"BUTTON1"
anchor="n", #按键文本位置为n
bd=5, #将borderwidth(边框宽度)设置为5
command=button1back_handle,#传入回调函数
justify="left", #按键文本为左对齐
cursor="right_ptr", #将光标移动至按键时的显示修改为
font=("宋体",15,"bold","italic"), #设置按键的字体、大小、加粗、斜体
padx=5, pady=5, #指定按键文本或图像距离边框的距离
relief=RAISED, #指定按键的样式
state=ACTIVE, #指定按键的状态
width=10, height=1, #制定按键的宽、高
#wraplength=0, #确定按键文本何时被调整为多行
)
button1.pack()
mainloop()
2、Checkbutton
Checkbutton用来实现选项的选择,也可以传入回调函数,使用普通按键Button用的控件属性
#coding=utf-8
from Tkinter import *
#创建容器
tk=Tk()
tk.title("我的GUI界面学习")
#主界面容器
mainfarm=Frame()
mainfarm.pack()
lab1=Label(mainfarm,text="你好,这是我的第一个GUI界面")
lab1.pack()
def button1back_handle():
print "button1 down"
button2val=IntVar()
button2=Checkbutton(mainfarm,
text='BUTTON2',
variable=button2val, #variable为按键的状态值
anchor="n", # 按键文本位置为n
bd=5, # 将borderwidth(边框宽度)设置为5
command=button1back_handle, # 传入回调函数
justify="left", # 按键文本为左对齐
cursor="right_ptr", # 将光标移动至按键时的显示修改为
font=("宋体", 15, "bold", "italic"), # 设置按键的字体、大小、加粗、斜体
padx=5, pady=5, # 指定按键文本或图像距离边框的距离
relief=RAISED, # 指定按键的样式
state=ACTIVE, # 指定按键的状态
width=10, height=5, # 制定按键的宽、高
)
button2.pack()
#为了看到按键值使用Lable控件显示下按键的值
Label(mainfarm,textvariable=button2val).pack()
mainloop()
3Radiobutton
Radiobutton主要实现多个选项中的单选。也可以传入回调函数,使用普通按键Button用的控件属性
#coding=utf-8
from Tkinter import *
#创建容器
tk=Tk()
tk.title("我的GUI界面学习")
#主界面容器
mainfarm=Frame()
mainfarm.pack()
lab1=Label(mainfarm,text="你好,这是我的第一个GUI界面")
lab1.pack()
def button1back_handle():
print "button1 down"
buttonval=IntVar()
button3=Radiobutton(mainfarm,
text='BUTTON3',
variable=buttonval, #variable为按键的状态值
anchor="n", # 按键文本位置为n
bd=5, # 将borderwidth(边框宽度)设置为5
command=button1back_handle, # 传入回调函数
width=10, height=1, # 制定按键的宽、高
value=1 #通过value的不同来区别不同的选项,所以多个选项间这个值不能相同,不一定是常数
)
button4=Radiobutton(mainfarm,
text='BUTTON4',
variable=buttonval, #variable为按键的状态值
anchor="n", # 按键文本位置为n
bd=5, # 将borderwidth(边框宽度)设置为5
command=button1back_handle, # 传入回调函数
width=10, height=1, # 制定按键的宽、高
value=2 #通过value的不同来区别不同的选项,所以多个选项间这个值不能相同,不一定是常数
)
button5=Radiobutton(mainfarm,
text='BUTTON5',
variable=buttonval, #variable为按键的状态值
anchor="n", # 按键文本位置为n
bd=5, # 将borderwidth(边框宽度)设置为5
command=button1back_handle, # 传入回调函数
padx=5, pady=5, # 指定按键文本或图像距离边框的距离
width=10, height=1, # 制定按键的宽、高
value=3 #通过value的不同来区别不同的选项,所以多个选项间这个值不能相同,不一定是常数
)
button3.pack()
button4.pack()
button5.pack()
#为了看到按键值使用Lable控件显示下按键的值
Label(mainfarm,textvariable=buttonval).pack()
使按键在有效和无效之间装换:
from Tkinter import *
def back():
if( b2['state']==DISABLED):
b2['state']=NORMAL
else :
b2['state'] = DISABLED
b1=Button(text="b1",command=back)
b1.pack()
b2=Button(text="b2")
b2.pack()
mainloop()