Button组件
一个简单的按钮,用来响应用户的一个点击操作。能够与一个Python
函数关联,当按钮被按下时,自动调用该函数。
1
b
=
Button
(
master
,
option
=
value
,
...
)
参数说明:
master: 代表承载该按钮的父容器.
options: 可选项,即该按钮的可设置的属性。这些选项可以
用键 =值的形式设置,并以逗号分隔。
1
from
tkinter
import
*
2
3
def
onclick
():
4
print
(
"onclick !!!"
)
5
6
window
=
Tk
()
7
8
#
实例化
Button
,使用
command
选项关联一个函数,点击按钮则执行该函数
9
button
=
Button
(
window
,
text
=
'
这是一个按钮
'
,
fg
=
'red'
,
command
=
onclick
)
10
11
#
设置
pack
布局方式
12
button
.
pack
()
13
14
root
.
mainloop
()
运行效果
Button常用属性:
属性
取值
说明
text
字符串
按钮的文本内容
activebackground
当鼠标放上去时,按钮的背景色
activeforeground
当鼠标放上去时,按钮的前景色
bd(bordwidth) 单位为像个素像,素默认值为2
按钮边框的大小
bg(background
)
按钮的背景色
command
函数名的字符串形式
按钮关联的函数,当按钮被点击时,执行该函数
fg(
foreground)
按钮的前景色(按钮文本的颜色)
font
设置字体,还包含样式和大小
image
给按钮设置一张图像,必须是用图像create方法产生
的
bitmap
指定按钮显示一张位图
justify
LEFT、CENTER、
RIGHT
显示多行文本的时候,设置不同行之间的对齐方式
padx
单位像素
按钮在x轴方向上的内边距,是指按钮的内容与按钮
边缘的距离
pady
单位像素
按钮在y轴方向上的内边距
relief
RAISED,SUNKEN,FLAT,
RIDGE,SOLID,GROOVE
设置控件3D效果
state
DISABLED、ACTIVE、
NORMAL
设置组件状态。正常(normal)、激活(active)、禁用
(disabled)
underline
取值为整数,默认值
为-1
默认按钮上的文本都不带下划线。取值就是带下划线
的字符串索引,为0时,第一个字符带下划线,为1
时,前两个字符带下划线,以此类推
width
单位像素
按钮的宽度,如未设置此项,其大小以适应按钮的内
容(文本或图片的大小)
height
单位像素
按钮的高度,同width属性
wraplength
取值为整数,默认值0
限制按钮每行显示的字符的数量
textvariable
指定一个变量名,变量值被转变为字符串在控件上显
示。当变量值改变,控件也将自动更新
anchor
取值可参考布局中的锚
选项
锚选项,控制文本的位置,默认为中心
以上属性中,许多具有通用性,熟悉之后,其他组件也就掌握了,关于
通用属性见
tkinter
Label组件
一个标签组件。主要用来实现显示功能,可以显示文字和图片。
1
l
=
Label
(
master
,
option
=
value
...
)
其实例化方式与按钮是一样的,可以说组件都是按照这样的方式实例化
的。
Label的属性可以直接参考按钮,事实上按钮就是一个特殊的标
签,只不过按钮多出了点击响应的功能。
1
from
tkinter
import
*
2
window
=
Tk
()
3
4
label_1
=
Label
(
window
,
text
=
"
我是标签
"
)
5
label_2
=
Label
(
window
,
bitmap
=
"error"
)
6
7
label_1
.
pack
()
8
label_2
.
pack
()
9
10
window
.
mainloop
()
如下,分别使用了两个标签,一个显示文字,另一个显示了一张位图
关于图片显示
1
注意:
Python
内置了
10
种位图,可以直接使用,设置
bitmap
即可。
2
“error”
3
“gray75”
4
“gray50”
5
“gray25”
6
“gray12”
7
“hourglass”
8
“info”
9
“questhead”
10
“question”
11
“warning”
效果 :
Python 中image属性仅支持gif、pgm、ppm格式,bitmap支持xbm
格式。设置方法:
1
photo
=
PhotoImage
(
file
=
"image.gif"
)
2
bmp
=
BitmapImage
(
file
=
"logo.xbm"
)
3
label
=
Label
(
root
,
image
=
photo
)
注意:image和bitmap参数两者只需设置一个,如果同时设置两个属性,则
image 将优先
如需显示其他格式图片,则需要做一些特别处理,要用到Python的图像处理库
——PIL库,但是PIL不支持Python3,且该库过于陈旧,不建议使用,这里可以
选择其替代方案,Pillow库,函数使用方法与PIL相同。首先去网上下载并安装
Pillow库。
使用如下:
from
PIL
import
Image
,
ImageTk
image
=
Image
.
open
(
"F:\\001.jpg"
)
photo
=
ImageTk
.
PhotoImage
(
image
)
#
在
Label
中显示图片
label
=
Label
(
root
,
image
=
photo
)
label
.
pack
()