python GUI--Tkinter(2):控件Button、Checkbutton、Radiobutton

一 、控件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()

猜你喜欢

转载自blog.csdn.net/ty_buyu/article/details/85220218