Button窗口部件

复制代码
# 2. Button窗口部件
# 简单说明:
# Button(按钮)部件是一个标准的Tkinter窗口部件,用来实现各种按钮。按钮能够包含文本或图象,
# 并且你能够将按钮与一个Python函数或方法相关联。当这个按钮被按下时,Tkinter自动调用相关联的函数或方法。
# 按钮仅能显示一种字体,但是这个文本可以跨行。另外,这个文本中的一个字母可以有下划线,例如标明一个快捷键。默认情况,Tab键用于将焦点移动到一个按钮部件。
# 什么时候用按钮部件
# 简言之,按钮部件用来让用户说“马上给我执行这个任务”,通常我们用显示在按钮上的文本或图象来提示。
# 按钮通常用在工具条中或应用程序窗口中,并且用来接收或忽略输入在对话框中的数据。关于按钮和输入的数据的配合,可以参看Checkbutton和Radiobutton部件。

# 什么时候用按钮部件
# 简言之,按钮部件用来让用户说“马上给我执行这个任务”,
# 通常我们用显示在按钮上的文本或图象来提示。按钮通常用在工具条中或应用程序窗口中,
# 并且用来接收或忽略输入在对话框中的数据。关于按钮和输入的数据的配合,可以参看Checkbutton和Radiobutton部件。


#Tkinter中的按钮大小通常是以字符宽度和高度来衡量的,而不是以像素为单位。这意味着width和height属性表示的是文本单元的数量,
# 而不是实际的像素数。需要精确的像素尺寸使用其他技巧,例如嵌套Label小部件或其他布局管理器


r=0
import random
import tkinter as tk
# 创建窗口
root = tk.Tk()
root.geometry("600x400+300+300")


def command0():
    root.update()
    global r
    r=r+1
    my_list = ['yellow', 'red', 'pink','blue','purple','green','brown','orange']#bloned金黄色,
    b.config(activebackground=random.choice(my_list) )#当鼠标放在按钮上时,按钮的背景颜色
    print(r'你已经点击了',r,'次')

# 使用按钮控件调用函数
b = tk.Button(root,
              text="点击变换窗口颜色\n变换后颜色固定",
              anchor='center',#文本在小部件的位置(这里是中间),没有放在控件里的话默认放在窗口中上方
              activeforeground='blue',#当鼠标放在按钮上时,按钮的前景色(实际是文本的颜色)
              activebackground='#F5F5DC',
              bd='5',#边框宽度5px
              highlightcolor='black',#属性设置当按钮获得焦点时的高亮颜色。当鼠标悬停在按钮上时,按钮周围会出现一个高亮边框
              highlightbackground='red',#当鼠标放在按钮上时,按钮的前景色(实际是文本的颜色)
              bg='green',#没有点击按钮是的背景色
              command=command0, #-用来执行按钮关联的回调函数。当按钮被点击时,执行该函数。
              fg='white',# 文本的颜色
              font=('Arial', 10, 'bold'),#按钮的字体样式
              height='15',#按钮的总高度
              width='20',#这里的width='80'意味着按钮的宽度将能够容纳大约80个标准字符的宽度
              padx='40',#按钮内的文本与左右边界的水平间距为 40 像素
              pady='20',#按钮内的文本与上下边界的垂直间距为 20 像素
              state='normal'#设置按钮的可用状态

)
b.config(relief='raised')#每个属性都可以按照这个单独设置## 'raised':控件看起来像是从背景中凸起
b.pack(pady=20)
# 显示窗口
root.mainloop()



# text - 按钮控件要显示的文本
# text=""     设置按钮上的文本。
# font=('Arial', 14)     设置字体为 Arial,字号为 14。
# fg='red'   设置文本颜色为红色。


# anchor - 控制文本所在的位置,默认为中心位置(CENTER)。可以设置为 'n', 'ne', 'e', 'se', 's', 'sw', 'w', 'nw', 'center' 或 'c'。
# n - 北方(顶部),文本将定位在小部件的顶部中心。
# ne - 东北角(顶部右侧),文本将定位在小部件的右上角。
# e - 东方(右侧),文本将定位在小部件的右侧中心。
# se - 东南角(底部右侧),文本将定位在小部件的右下角。
# s - 南方(底部),文本将定位在小部件的底部中心。
# sw - 西南角(底部左侧),文本将定位在小部件的左下角。
# w - 西方(左侧),文本将定位在小部件的左侧中心。
# nw - 西北角(顶部左侧),文本将定位在小部件的左上角。
# center 或 c - 中心,文本将居中小部件的中央。


# activebackground - 当鼠标放在按钮上时,按钮的背景颜色。
# activeforeground - 当鼠标放在按钮上时,按钮的前景色。

# bd - 按钮边框的大小,默认为 2 个像素。
#边框颜色
# highlightcolor: 设置当鼠标悬停在按钮上时边框的颜色。
# highlightbackground: 设置当鼠标不在按钮上时边框的颜色

# bg - 按钮的背景色。
# command - 用来执行按钮关联的回调函数。当按钮被点击时,执行该函数。
# fg - 按钮的前景色(通常是文本颜色)。
# font - 按钮文本的字体样式。可以是一个字体元组,例如 ('Arial', 14, 'bold')
# 'bold' 是一个可选的修饰符,表示字体加粗。除了'bold'之外,
# 还可以使用'normal'表示不加粗,也可以结合其他修饰符如'italic'(斜体)等一起使用,
# 例如('Arial', 14, 'bold italic')表示加粗斜体

# height - 按钮的高度。
#height 属性指的是按钮的高度,它是指按钮的总高度,包括按钮上的文本、图像以及按钮本身的边框和填充等。这个高度是以字符高度为单位的,而不是像素
# width这里的width=''意味着按钮的宽度将能够容纳大约  个标准字符的宽度

# highlightcolor - 按钮控件高亮处要显示的颜色。
# highlightcolor: 设置为 'red',这意味着当鼠标悬停在按钮上时,边框颜色变为红色。
# highlightbackground: 设置为 'black',这意味着当鼠标不在按钮上时,边框颜色为黑色
# highlightcolor 主要是在控件获得键盘焦点时生效,例如通过Tab键导航到按钮时


# image - 按钮上要显示的图片。需要使用 tk.PhotoImage 加载图片。
# img = PhotoImage(file="path/to/example.png")
# b = tk.Button(image=img)#但是不支持做按钮的背景


# relief 的可用选项
# 'raised':控件看起来像是从背景中凸起。
# 'sunken':控件看起来像是嵌入到背景中。
# 'flat':控件看起来没有边框,与背景平齐。
# 'groove':控件看起来像是有一个浅槽环绕。
# 'ridge':控件看起来像是有一个小脊环绕。

#焦点
#焦点”是指当前可以接收用户输入的控件或窗口。当一个控件拥有焦点时,它通常可以接收键盘输入,并且某些控件还可能响应特定的键盘快捷键。
# def set_focus_to_button():给按钮或者控件获取焦点
# button.focus_set()
# 当点击按钮时,按钮已经获得了焦点,所以再次调用 focus_set() 方法实际上并没有改变焦点状态。

# justify - 按钮显示多行文本时,用来指定文本的对齐方式。可以设置为 'left', 'center', 或 'right'。
# LEFT - 文本将左对齐。
# CENTER - 文本将居中对齐。
# RIGHT - 文本将右对齐。

# padx 和 pady - 分别指定了 x 轴(水平方向)和 y 轴(垂直方向)的间距大小。
#padx 和 pady 属性用于设置小部件内部文本与小部件边界之间的额外空间。它们分别指定了 x 轴(水平方向)和 y 轴(垂直方向)上的额外空间大小。
# padx - 水平方向上的额外空间。它增加了文本与小部件左右边界的距离。
# pady - 垂直方向上的额外空间。它增加了文本与小部件上下边界的距离


# ipadx 和 ipady - 分别指定了标签文字与标签容器之间的横向和纵向距离。这些属性不适用于 Button,而是适用于 Label。
#就是按钮文字和标签容器之间的距离




#位图(Bitmap)
# 是一种图像格式,它由一系列像素组成,每个像素都有自己的颜色信息
# 。位图图像通常用于表示图标、按钮图像、徽标等小型图形元素。
# 位图图像的特点是它们的分辨率依赖于像素数量,这意味着放大位图图像时可能会出现失真或像素化
#error: 表示错误或警告的图像。
# gray12, gray25, gray50, gray75: 不同灰度级别的图像。
# hourglass: 通常用于表示等待状态的沙漏图像。
# info: 提供信息的图像。
# questhead: 询问或提示的图像。
# question: 类似于 info 的图像,但通常用于表示问题或查询。
# warning: 表示警告的图像







# state - 设置按钮的可用状态,可选参数有 'normal', 'active', 和 'disabled',默认为 'normal'。
#NORMAL - 正常状态,按钮可以被点击。这是默认状态。
# disabled - 禁用状态,按钮不可点击。在这种状态下,按钮通常会显示为灰色或其他表明禁用状态的样式。
# active - 当鼠标位于按钮上时的状态。虽然这个值可以被设置,但在实际使用中,它通常由Tkinter自动管理。
# 您通常不需要手动设置这个状态,因为它是由Tkinter根据用户交互自动切换的。
相关推荐
Python大数据分析@26 分钟前
python操作CSV和excel,如何来做?
开发语言·python·excel
黑叶白树27 分钟前
简单的签到程序 python笔记
笔记·python
Shy96041840 分钟前
Bert完形填空
python·深度学习·bert
上海_彭彭1 小时前
【提效工具开发】Python功能模块执行和 SQL 执行 需求整理
开发语言·python·sql·测试工具·element
zhongcx011 小时前
使用Python查找大文件的实用脚本
python
yyfhq2 小时前
sdnet
python
测试19982 小时前
2024软件测试面试热点问题
自动化测试·软件测试·python·测试工具·面试·职场和发展·压力测试
love_and_hope2 小时前
Pytorch学习--神经网络--搭建小实战(手撕CIFAR 10 model structure)和 Sequential 的使用
人工智能·pytorch·python·深度学习·学习
海阔天空_20133 小时前
Python pyautogui库:自动化操作的强大工具
运维·开发语言·python·青少年编程·自动化
零意@3 小时前
ubuntu切换不同版本的python
windows·python·ubuntu