《tkinter实用教程二》

本教程是博主个人心血,如有引用,需在文章顶部标明引用信息

《tkinter实用教程二》Button 控件

tkinter Button 控件

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

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

from tkinter import *

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

root.mainloop() 

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

《tkinter实用教程二》

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

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

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

如何指定按钮样式

Button 的样式由参数 relief 指定,如下代码:

from tkinter import * 

root = Tk()
btn = Button(root,text="第二个按钮",relief=SUNKEN)
btn.pack()

root.mainloop()

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

《tkinter实用教程二》

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

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

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

如何制定按钮的大小

relief 参数一样,想要在创建按钮的时候指定按钮大小,只需要为 widthheight 两个参数传入对应的值就好了。

from tkinter import *

root = Tk()
btn = Button(root,text="abcdefg",relief=GROOVE,width=7,height=6)
btn.pack()

root.mainloop()

以上代码创建了一个宽为7个字符,高为6行的按钮,如下图所示:

《tkinter实用教程二》

这个形状奇特的按钮,宽度恰好放下7个字符,高度正好能够放下6行文字。

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

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

from tkinter import *
root = Tk()
btn = Button(root,text="abcdefg",relief=GROOVE)
btn['width']=6
btn['height']=7
btn.pack()

root.mainloop()

按钮参数并不是必须在创建时指定,在完成创建之后,同样可以通过以上方式进行更改。

这种写法对所有控件都是有效的哦,并不是按钮的特长!!

如何设置按钮的背景颜色

以下代码创建了一个红色背景的按钮:

from tkinter import *

root = Tk()
btn = Button(root,text="第四个按钮")
btn['bg']='red'
btn.pack()

root.mainloop()

代码执行结果如下图:

《tkinter实用教程二》

其他参数的用法和以上参数的方式都是一样的,在文末问列出所有的参数及其用途,不要错过呦!!

如何为按钮绑定事件

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

from tkinter import *

def click():
    btn['bg']='blue'

root = Tk()
btn = Button(root,text="点我吧",bg='red',command=click)
btn.pack()

root.mainloop()

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

点击之前

《tkinter实用教程二》

点击之后

《tkinter实用教程二》

所有可选参数表

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

参数 描述
activebackground 按钮在光标下时的背景颜色
activebackground 按钮在光标下时的前景颜色
anchor 文本在按钮上的位置。 例如,anchor=tk.NE 会将文本放置在按钮的右上角
bd 或者 borderwidth 按钮外部的边框宽度,默认是两个像素
bg 或者 background 正常状态下的背景色
bitmap 要在按钮上显示的标准位图之一的名称(而不是文本)。
command 单击按钮时要调用的函数或方法。
cursor 选择当鼠标悬停在按钮上时显示的光标
default tk.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 如果此值设置为正数,文本行将被换行以适应此长度
上一篇:Qt-对话框的基本设置和按钮控件QPushButton简单使用


下一篇:Linux 安装PHP扩展过程