《tkinter实用教程三》ttk.Button控件

更多《Tkinter 实用教程》系列文章

tkinter ttk.Button 控件

本文主要介绍 tkinterttk.Button 控件的简单用法和可选参数列表。

如何在顶层窗口中创建一个 ttk.Button

如下代码在顶层窗口 root 中创建了一个名为 btn 的按钮。

from tkinter import *

root = Tk()
btn = Button(root,text="第一个按钮") #创建一个按钮,并放置在root中
btn.pack() # 放置按钮

root.mainloop() 

以上代码执行完毕后,会弹出如下图所示窗口。

在这里插入图片描述

按钮中的文字由参数 text 指定。

除了参数 text 之外,在创建一个 Button 时,还可以指定多种参数值,文章末尾会全部列出。

现在,我们只讨论常用几个参数。

如何指定 ttk.Button 样式

Button 的3D样式由参数 relief 指定,如下代码创建了一个红色字体,蓝色背景的凸出按钮:

from tkinter import *
from tkinter import ttk

root = Tk()
style_default = ttk.Style()

style_default.configure("TButton",foreground="red",background="blue",relief=RAISED)

btn = ttk.Button(root,text="第二个按钮",style="TButton")
btn.pack()

root.mainloop()

relief 参数使用传入的 RAISED 值,会创建一个如下图所示的,和 “第一个按钮” 截然不同的凸出按钮:

在这里插入图片描述

SUNKEN 同样有意思的值还有很多,都列在下面啦,一个个去尝试吧!

  • RAISED=‘raised’
  • SUNKEN=‘sunken’
  • FLAT=‘flat’
  • RIDGE=‘ridge’
  • GROOVE=‘groove’
  • SOLID = ‘solid’

除了按钮的3D样式之外,我们常用的参数还有宽和高(widthheight)。

如何制定按钮的大小

按钮宽度由参数 width 指定,以下代码创建了一个宽度为17个字符的按钮:

from tkinter import *
from tkinter import ttk

root = Tk()
style = ttk.Style()
style.configure("TButton",width=17)
btn = ttk.Button(text="abcdefg",style='TButton')
btn.pack()

root.mainloop()

代码执行结果,如下图所示:

在这里插入图片描述

ttk.Button 控件和 tkinter 原生按钮不同,不具备 height 参数,具体原因目前还不清楚,还在学习过程中。

按钮的宽以字符数量来确定的,如果是图像按钮则是以像素为单位的,不要忘了哦!!

以上代码还能写成如下形式:

from tkinter import *
from tkinter import ttk
root = Tk()
btn = ttk.Button(root,text="abcdefg",width=17)
btn.pack()

root.mainloop()

这种方式只对 width 参数有用,其他样式参数还是要使用 Style 传入!!

如何为按钮绑定事件

按钮绑定点击事件是通过 command 进行的,相信读到这里,你已经知道如何做了:

import tkinter
from tkinter import ttk

def click():
    btn['style']='C.TButton'

root = tkinter.Tk()
s1 = ttk.Style()
s2 = ttk.Style()
s1.configure("TButton",background='red')
s2.configure("C.TButton",background="blue")

btn = ttk.Button(text='btn',command=click)
btn.pack()
root.mainloop()

以上代码创建了一个具有红色背景的按钮,并给 command 参数传入了一个函数
在函数里改变了按钮的颜色。
执行结果如下:

点击之前

在这里插入图片描述

点击之后

在这里插入图片描述

所有可选参数表

以下是按钮的所有参数及其介绍:

参数描述
activebackground按钮在光标下时的背景颜色
activebackground按钮在光标下时的前景颜色
anchor文本在按钮上的位置。 例如,anchor=tk.NE 会将文本放置在按钮的右上角
bd 或者 borderwidth按钮外部的边框宽度,默认是两个像素
bg 或者 background正常状态下的背景色
bitmap要在按钮上显示的标准位图之一的名称(而不是文本)。
command单击按钮时要调用的函数或方法。
cursor选择当鼠标悬停在按钮上时显示的光标
defaulttk.NORMAL 是默认值; 如果按钮最初被禁用(变灰,对鼠标点击无响应),请使用 tk.DISABLED
disabledforeground禁用按钮时使用的前景色
fg 或者 foreground正常的前景色(文本)颜色
font用于按钮的文本字体
height以文本行(对于文本按钮)或像素(对于图像)为单位的按钮高度
highlightbackground按钮有焦点时的高亮背景色
highlightcolor控件有焦点时焦点高亮的颜色
highlightthickness焦点高光的厚度
image展示在按钮上的图片(而不是文字)
justify如何显示多行文本: tk.LEFT 左对齐每一行;tk.CENTER 将它们居中; 或 tk.RIGHT 右对齐
overrelief鼠标在按钮上时使用的浮雕样式; 默认样式是 tk.RAISED
padx文本左侧和右侧的附加填充
pady文本上侧和下册的附加填充
relief指定按钮的浮雕类型。默认浮雕tk.RAISED
repeatdelay请参阅下面的repeatinterval
repeatinterval通常,当用户释放鼠标按钮时,按钮只会触发一次。如果您希望按钮在按住鼠标按钮时按固定间隔触发,请将此选项设置为要在重复之间使用的毫秒数,并将 repeatdelay 设置为在开始重复之前等待的毫秒数。例如,如果您指定“ repeatdelay=500, repeatinterval=100”按钮将在半秒后触发,此后每十分之一秒触发一次,直到用户释放鼠标按钮。 如果用户没有按住鼠标按钮至少 repeatdelay 毫秒,按钮将正常触发。
state将此选项设置为 tk.DISABLED 以使按钮变灰并使其无响应。 当鼠标悬停在其上方时,其值为 tk.ACTIVE。 默认值为 tk.NORMAL
takefocus通常,键盘焦点会访问按钮,空格字符的作用与鼠标单击相同,“按下”按钮。 您可以将 takefocus 选项设置为零以防止焦点访问按钮
text按钮上显示的文本。 使用内部换行符显示多个文本行
textvariable与此按钮上的文本相关联的 StringVar() 实例。 如果变量更改,新值将显示在按钮上
underline默认值为 -1,这意味着按钮上的文本字符将不带有下划线。 如果非负,相应的文本字符将被划线。 例如,underline=1 将在按钮文本的第二个字符下划线。
width以字母(如果显示文本)或像素(如果显示图像)为单位的按钮宽度
wraplength如果此值设置为正数,文本行将被换行以适应此长度

更多《Tkinter 实用教程》系列文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@魏大大

我们都没有打赏的习惯

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值