目录
Tkinter Button 组件
何时使用Button组件
模式
参考
Tkinter Button 组件
Button组件是用于实现各种按钮的标准Tkinter组件。
按钮可以包含文本或图像。
可以将Python函数或方法与每个按钮关联, 按下按钮后,Tkinter会自动调用该函数或方法。
该按钮只能以一种字体显示文本,但是文本可能会跨越多行。
此外,可以在其中一个字符加下划线,例如标记键盘快捷键。(没懂啥意思)
默认情况下,Tab键可用于移动到按钮组件。
何时使用Button组件
简而言之,Button组件用于让用户说“立即执行操作!”,该操作既可以由按钮上的文本给出,也可以由按钮上显示的图标暗示。
Button通常用于应用程序窗口中的工具栏,并用于接受或关闭输入到对话框中的数据。
如果需要通过按钮来获取数据输入,请参见Checkbutton和Radiobutton组件。
模式
普通按钮非常易于使用。
您所要做的就是指定按钮的内容(比如:文本,位图或图像)以及按下按钮时要调用的函数或方法:
栗子:
from tkinter import *
master = Tk()
def callback():
print('miaopasi')
btn = Button(master, text='link start', command=callback)
btn.pack()
master.mainloop()
没有回调的按钮是没有意义的,当你按下按钮时,它什么也没做。
在开发应用程序时,你可能仍希望使用此类按钮,在这种情况下,最好禁用该按钮以避免让人混淆:
disable_btn = Button(master, text='Help', state=DISABLED)
disable_btn.pack()
如果未指定大小,则按钮的大小正好足以容纳其内容。
可以使用padx和pady选项在内容和按钮边框之间添加一些额外的空间。
还可以使用height和width选项来显式设置大小。
如果在按钮中显示文本,则这些选项以文本单位定义按钮的大小。
如果改为显示位图或图像,则它们以像素(或其他屏幕单位)为单位定义大小。
甚至可以为文本按钮指定像素大小,但这需要一些技巧。
其中一种实现方法(还有其他方法):
frame = Frame(master, height=50, width=50)
frame.pack_propagate(0)
frame.pack()
btn1 = Button(frame, text='Sure!')
btn1.pack(fill=BOTH, expand=1)
按钮可以显示多行文本(但只能显示一种字体)。
可以使用换行符,也可以使用wraplength选项使按钮本身自动换行。 换行时,请使用anchor,justify以及可能的padx选项,使内容看起来完全符合您的期望。 举个栗子:
btn2 = Button(master, wraplength=200, text='You can use newlines, or use the wraplength option to make the button wrap text by itself. ', anchor=W, justify=LEFT, padx=2)
btn2.pack()
要使普通按钮看起来像被按下一样,比如想实现某种工具箱,则可以将释放方式从RAISED更改为SUNKEN:
btn3 = Button(master, text='SUNKEN button', relief=SUNKEN, command=callback)
btn3.pack()
如果还希望更改背景,更好的解决方案是使用将indicatoron选项设置为false的Checkbutton或Radiobutton:
blod = PhotoImage(file='miaopasi.gif')
var = StringVar()
checkBtn = Checkbutton(master, image=blod, variable=var, indicatoron=0, width=50, height=20, padx=3)
checkBtn.pack()
在早期版本的Tkinter中,图像选项会覆盖文本选项。 如果同时指定两者,则仅显示图像。
在更高版本中,您可以使用compound选项更改此行为。 要在图像顶部显示文本,将“ compound”设置为“ CENTER”:
btn4 = Button(master, text="miaopasi", image=blod, width=200, height=30, compound=CENTER)
btn4.pack()
如果想文本和显示图标一起显示,compound设置为LEFT,RIGHT,TOP或BOTTOM之一:
btn5 = Button(master, compound=LEFT, text="miaopasi", image=blod)
btn5.pack()
btn6 = Button(master, compound=TOP, text="miaopasi", image=blod)
btn6.pack()
参考
Button(master=None, **options) (class)
说明:执行命令的按钮
参数:
master,父部件
**options,可选项,参考下方config中的说明。
方法:
flash()
刷新Button组件,该方法将重绘 Button 组件若干次。
invoke()
调用Button中 command 选项指定的函数或方法。
.............................................................................................................................................................................................
config(**options)
修改一个或多个组件选项。 如果没有给出选项,则该方法返回包含所有当前选项值的字典。
**options
选项 | 含义 |
activebackground | 设置当Button处于活动状态的背景色 默认值由系统指定 |
activeforeground | 设置当Button处于活动状态的前景色 |
anchor | 控制文本(或图像)在Button中显示的位置 N, NE, E, SE, S, SW, W, NW, 或者CENTER |
background、bg | 设置背景颜色 默认值由系统指定 |
bitmap | 指定显示到Button上的位图 如果指定了image 选项,则该选项被忽略 |
borderwidth、bd | 指定Button的边框宽度 默认值由系统指定,通常是1或2像素 |
compound | 控制 Button 中文本和图像的混合模式 如果该选项设置为 CENTER,文本显示在图像上 |
cursor | 指定当鼠标在Button上飘过的时候的鼠标样式 默认值由系统指定 |
default | 如果设置该选项("normal"),该按钮会被绘制成默认按钮 Tkinter 会根据平台的具体指标来绘制 默认值是DISABLED |
disabledforeground | 指定当Button不可用的时候前景色的颜色 默认值由系统指定 |
font | 指定Button中文本的字体 一个Button只能设置一种字体 默认值由系统指定 |
foreground、fg | 设置Button的文本和位图的颜色 默认值由系统指定 |
height | Button的高度 如果Button显示的是文本,那么单位是文本单元 如果Button显示的是图像,那么单位是像素(或屏幕单元) 如果设置为 0 或者干脆不设置,那么会自动根据Button的内容计算出高度 |
width | Button的宽度 如果Button显示的是文本,那么单位是文本单元 如果Button显示的是图像,那么单位是像素(或屏幕单元) 如果设置为 0 或者干脆不设置,那么会自动根据Button的内容计算出宽度 |
highlightbackground | 指定当Button没有获得焦点的时候高亮边框的颜色 默认值由系统指定 |
highlightcolor | 指定当Button获得焦点的时候高亮边框的颜色 默认值由系统指定 |
highlightthickness | 指定高亮边框的宽度 默认值是 0(不带高亮边框) |
image | 指定Button显示的图片 该值应该是 PhotoImage,BitmapImage,或者能兼容的对象 该选项优先于 text 和 bitmap 选项 |
justify | 定义如何对齐多行文本 使用LEFT, RIGHT,或者 CENTER. |
overrelief | 定义当鼠标飘过时Button的样式 如果不设置,那么总是使用 relief 选项指定的样式 |
padx | 指定Button 水平方向上的外间距(内容和边框间) |
pady | 指定Button垂直方向上的外间距 |
relief | 指定边框样式 通常当按钮被按下时是 SUNKEN ,其他时候是RAISED 另外你还可以设置 GROOVE, RIDGE, 和FLAT 默认值是 RAISED |
state | 指定Button的状态 可以是 NORMAL, ACTIVE 或者DISABLED. |
takefocus | 指定使用 Tab 键可以将焦点移到该 Button 组件上(这样按下空格键也相当于触发按钮事件) 默认是开启的,可以将该选项设置为 False 避免焦点在此 Button 上 |
text | 指定Button显示的文本 文本可以包含换行符 如果设置了 bitmap 或 image 选项,该选项则被忽略 |
textvariable | Button显示 Tkinter 变量(通常是一个 StringVar 变量)的内容 如果变量被修改,Button 的文本会自动更新 |
underline | 跟 text 选项一起使用,用于指定哪一个字符画下划线(例如用于表示键盘快捷键) 默认值是 -1 |
wraplength | 决定 Button 的文本应该被分成多少行 该选项指定每行的长度,单位是屏幕单元 默认值是 |