英文: The Tkinter Button Widget

目录

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中显示的位置

NNEESESSWWNW, 或者CENTER
默认值是CENTER

background、bg 设置背景颜色
默认值由系统指定
bitmap 指定显示到Button上的位图
如果指定了image 选项,则该选项被忽略
borderwidth、bd 指定Button的边框宽度
默认值由系统指定,通常是1或2像素
compound

控制 Button 中文本和图像的混合模式
默认情况下,如果有指定位图或图片,则不显示文本

如果该选项设置为 CENTER,文本显示在图像上
如果该选项设置为 BOTTOMLEFTRIGHT,或者TOP, 那么图像显示在文本的旁边
默认值是 NONE

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

定义如何对齐多行文本

使用LEFTRIGHT,或者 CENTER
注意,文本的位置取决于 anchor 选项
默认值是 CENTER

overrelief 定义当鼠标飘过时Button的样式
如果不设置,那么总是使用 relief 选项指定的样式
padx 指定Button 水平方向上的外间距(内容和边框间)
pady 指定Button垂直方向上的外间距
relief 指定边框样式
通常当按钮被按下时是 SUNKEN ,其他时候是RAISED 
另外你还可以设置 GROOVERIDGE, 和FLAT
默认值是 RAISED 
state

指定Button的状态

可以是 NORMALACTIVE 或者DISABLED.
默认值是 NORMAL

takefocus 指定使用 Tab 键可以将焦点移到该 Button 组件上(这样按下空格键也相当于触发按钮事件)
默认是开启的,可以将该选项设置为 False 避免焦点在此 Button 上
text 指定Button显示的文本
文本可以包含换行符
如果设置了 bitmap 或 image 选项,该选项则被忽略
textvariable Button显示 Tkinter 变量(通常是一个 StringVar 变量)的内容
如果变量被修改,Button 的文本会自动更新
underline 跟 text 选项一起使用,用于指定哪一个字符画下划线(例如用于表示键盘快捷键) 
默认值是 -1
wraplength 决定 Button 的文本应该被分成多少行
该选项指定每行的长度,单位是屏幕单元
默认值是 

python--Tkinter学习笔记之Button相关推荐

  1. Python tkinter 学习笔记(2)-- 控件、组件(二)

    Python tkinter 学习笔记(1)-- 第一个窗口之HelloWorld 教程 Python tkinter 学习笔记(2)-- 控件.组件(一) > 续上一章节 Python tki ...

  2. Python tkinter 学习笔记(3) -- 界面布局1(grid和pack)

    Python tkinter 学习笔记(1)-- 第一个窗口之HelloWorld 教程 Python tkinter 学习笔记(2)-- 控件.组件(一) Tkinter 界面布局(grid\pac ...

  3. Python tkinter 学习笔记(2)-- 控件、组件(一)

    Python tkinter 学习笔记(1)-- 第一个窗口之HelloWorld 教程 目录 一.Tkinter 15种基础控件 1. Button 按钮控件 2.Canvas 画图控件 3.Che ...

  4. python Tkinter学习笔记 menu控件 02

    2019独角兽企业重金招聘Python工程师标准>>> ''' Created on 2012-9-19@author: liangqianwu''' #_*_ coding:utf ...

  5. Python Tkinter 学习成果:点歌软件music

    笔者工作业余时间也没什么爱好,社交圈子也小,主要娱乐就是背着自己带电瓶的卖唱音响到住地附近找个人多的位置唱唱KtV. 硬件上点歌就用笔记本电脑,歌曲都是网上下载的mkv格式的含有两个音轨的视频.因此点 ...

  6. python做直方图-python OpenCV学习笔记实现二维直方图

    本文介绍了python OpenCV学习笔记实现二维直方图,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/dd/d0d/tutorial_py_2d ...

  7. python 正则学习笔记

    python 正则学习笔记 官方document #1.0 import re m=re.search('(?<=abc)def','cxabcdefgb')print(m.group(0))# ...

  8. Python数据结构学习笔记——链表:无序链表和有序链表

    目录 一.链表 二.无序链表 实现步骤分析 三.无序链表的Python实现代码 四.有序链表 实现步骤分析 五.有序链表的Python实现代码 结语 一.链表 链表中每一个元素都由为两部分构成:一是该 ...

  9. Python数据结构学习笔记——队列和双端队列

    目录 一.队列的定义 二.队列 实现步骤分析 三.队列的Python实现代码 四.队列的应用 六人传土豆游戏 五.双端队列的定义 六.双端队列 实现步骤分析 七.双端队列的Python实现代码 八.双 ...

  10. Python数据结构学习笔记——栈

    目录 一.栈的定义和特性 (一)栈的定义 (二)栈的反转特性 二.实现分析步骤 三.栈的Python实现代码 四.栈的应用 (一)匹配圆括号 (二)匹配符号 (三)模2除法(十进制转二进制) (四)进 ...

最新文章

  1. Javaweb中提到的反射浅析(附源码)
  2. 构建高可用的LVS负载均衡集群 入门篇
  3. 【PC工具】网站服务器端口检测工具,网络端口扫描工具,win10telnet安装方法
  4. java 变成题_Java 习题8 参考答案及解析
  5. JSON和XML:它们如何比较?
  6. 武警多业务光端机,五防光端机产品介绍
  7. [Pro*c]滚动游标变量的使用
  8. 讨论了好久的问题,IE、Firefox下CSS图片垂直居中的问题
  9. mysql日期代码_mysql日期查询操作代码
  10. 线性代数学习全攻略(内附机器学习路径图)
  11. (27)System Verilog设计UART接收
  12. 基于 Canal 和 Kafka 实现 MySQL 的 Binlog 近实时同步
  13. Unet车牌分割,矫正
  14. 关于安装VS2008后SQL server 2005安装的问题
  15. CORS - 引入预检请求的动机是什么?
  16. python怎么读取csv文件-python如何读取csv数据
  17. Linux BT下载(7)-种子解析模块设计与实现1
  18. Himall商城LinqHelper帮助类(3)
  19. vmware 14 密钥
  20. 微信小程序阅读器功能

热门文章

  1. Python循环命名
  2. 11.10@烤仔建工 | 让最佳CP在烤仔的客栈团圆
  3. 手机android未连接,安卓手机无法连接傲软投屏怎么办 无法连接傲软投屏解决方法...
  4. Windows下安装Python 模块的三种方法
  5. springBoot修改内置tomcat端口
  6. 邮件发送时间怎么修改 python_《邮》字意思读音、组词解释及笔画数 - 新华字典 - 911查询...
  7. EM 算法与 GMM 模型
  8. indexDB操作库----zl-indexdb
  9. java计算机毕业设计HTML5互动游戏新闻网站设计与实现源码+mysql数据库+系统+lw文档+部署
  10. Ubuntu虚拟机下忘记密码的解决方法-实测可用