按钮组件,用于监听用户行为,调用具体功能函数。按钮上可以是文字或者图片。
语法:
Button(master,option……)
master 父容器
option 参数
参数:
参数 | 属性 | 举例或备注 |
bg | 按钮背景颜色 |
|
fg | 按钮前景颜色 | 按钮上的文字颜色 |
bd | 按钮边框大小 | 边框会呈现立体感 |
activebackground | 鼠标点击时按钮背景色 |
|
activeforeground | 鼠标点击去时按钮前景色 |
|
font | 按钮文本字体 |
|
height | 按钮高度 |
|
width | 按钮宽度 |
|
highlightcolor | 要高亮的颜色 | 目前版本对按钮无效 |
padx | 按钮横向内边距 | 按钮内容与按钮的边框间距 |
pady | 按钮纵向内边距 | 按钮内容与按钮的边框间距 |
relief | 边框样式 flat sunken raised groove ridge |
|
state | 按钮组件状态 normal active disabled |
|
justify | 文本对齐方式。 left、right、center | 多行文本是才生效 |
text | 按钮文本内容 |
|
image | 按钮上显示的图片 |
|
command | 点击按钮时执行的函数 | 按钮关联的函数 |
underline | 下划线 取值为数字 0 1 2……等 | 值等于0时,第一个字符带下划线。值为1时,第二个字符带下划线,以此类推 |
wraplength | 按钮文本多行显示 | 参考代码示例 |
anchor | 文本或图像的位置。 选项:n s w e ne nw se sw center |
|
常用方法:
config() | 对按钮属性进行设置 |
|
综合示例:
import tkinter as tk
root = tk.Tk()
btn1 = tk.Button(root,text='测试按钮1',bg='white',fg='red',padx=30,pady=20)
# 点击按钮时,按钮的背景色和前景色
btn2 = tk.Button(root,text='测试按钮2',activebackground='blue',activeforeground='red')
# 设置按钮边框大小,按钮整体呈现立体感
btn3 = tk.Button(root,text='测试按钮3',bd='100')
# 按钮字体设置为黑体,目前版本highlightcolor对按钮无效
btn4 = tk.Button(root,text='测试按钮4',font='SimHei',height=10,width=10,highlightcolor='red')
# 设置按钮边框样式
btn5 = tk.Button(root,text='测试按钮5',relief='ridge')
# 设置按钮不可用
btn6 = tk.Button(root,text='测试按钮6',state='disabled')
btn7 = tk.Button(root,text='测试按钮7\n测试\n按钮7测试按钮7',justify='right')
# 指定一行文本的长度,即文本长度达到多长以后换行显示
btn8 = tk.Button(root,text='测试按钮8测试按钮8测试按钮8',wraplength=80)
# 文本靠右显示,第四个字符带下划线
btn9 = tk.Button(root,text='测试按钮9',underline='0',anchor='e',width='30')
# 以照片为按钮
photo = tk.PhotoImage(file=r'lixiaolong.png')
btn10 = tk.Button(root,text='测试按钮10',image=photo)
#点击按钮11将背景置为红色
def btn11push():
btn11.config(bg='red')
btn11 = tk.Button(root,text='测试按钮11',command=btn11push)
btn1.grid(row=0,column=0)
btn2.grid(row=0,column=1)
btn3.grid(row=0,column=2)
btn4.grid(row=0,column=3)
btn5.grid(row=1,column=0)
btn6.grid(row=1,column=1)
btn7.grid(row=1,column=2)
btn8.grid(row=1,column=3)
btn9.grid(row=1,column=4)
btn10.grid(row=2,column=0)
btn11.grid(row=2,column=1)
root.mainloop()