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根据用户交互自动切换的。
相关推荐
databook4 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar5 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户8356290780515 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_5 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机12 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机13 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机13 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机13 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i13 小时前
drf初步梳理
python·django
每日AI新事件13 小时前
python的异步函数
python