Python中按钮(BUTTON)样式属性及说明

 更新时间:2025年01月23日 10:08:35   作者:SAPmatinal  
文章介绍了Python中tkinter库中的Button组件,用于在GUI中添加按钮,按钮可以包含文本或图像,并且可以通过点击执行特定函数,文章详细说明了Button组件的构造语法和常用参数,并提供了一个代码示例

Python按钮(BUTTON)样式属性

Python tkinter 按钮组件用于tkinter GUI里添加按钮,按钮可以添加文本和图像。

当按钮按下时,可以执行指定的函数。

使用语法

widget = Button( master, parameter=value, ... )
  • master:按钮控件的父容器
  • parameter:按钮的参数
  • value:参数对应的值

各参数之间以逗号分隔。

参数说明

代码示例

# -*- coding:utf-8 -*-
from tkinter import *
 
 
class buttons:
    def __init__(self):
        root = Tk()
        root.title("按钮")  # 设置窗口标题
        root.geometry("600x600")  # 设置窗口大小 注意:是x 不是*
        '''按钮样式'''
        # 按钮文字切换
        self.btsd = Label(root, text='按钮文字切换:')
        self.bts = Button(root, text='按钮开始', command=self.Button_text_switch)
        # 按钮状态
        self.button_state = Label(root, text='按钮状态:')
        self.disabled_state = Button(root, text='禁用状态')
        self.disabled_state.config(state=DISABLED)
        self.usual_status = Button(root, text='普通状态')
        self.usual_status.config(state=NORMAL)
        self.active = Button(root, text='活跃状态')
        self.active.config(state=ACTIVE)
        # 鼠标点击到按钮后改变颜色,activebackground='背景色',activeforeground='前景色'
        self.mouse_click_color = Label(root, text='鼠标点击颜色:')
        self.click_background_colour = Button(root, text='背景色', activebackground='blue')
        self.click_foreground_colour = Button(root, text='前景色', activeforeground='blue')
        # 按钮边框大小,bd='边框大小'
        self.button_border_size = Label(root, text='按钮边框大小:')
        self.border = Button(root, text='按钮边框', bd=5)
        # 按钮颜色,bg='背景色', fg='前景色'
        self.the_button_color = Label(root, text='按钮颜色:')
        self.button_background_colour = Button(root, text='背景色', bg='blue')
        self.button_foreground_colour = Button(root, text='前景色', fg='blue')
        # 按钮字体格式, font=('字体', 字体大小, 'bold/italic/underline/overstrike')
        self.button_font_format = Label(root, text='按钮字体格式:')
        self.button_face1 = Button(root, text='软体雅黑/12/重打印', font=('软体雅黑', 10, 'overstrike'))
        self.button_face2 = Button(root, text='宋体/12/斜体', font=('宋体', 10, 'italic'))
        self.button_face3 = Button(root, text='黑体/12/加粗', font=('黑体', 10, 'bold'))
        self.button_face4 = Button(root, text='楷体/12/下划线', font=('楷体', 10, 'underline'))
        # 按钮高度,height='高度'
        self.button_border_xy = Label(root, text='按钮边xy:')
        self.button_height = Button(root, text='按钮高度', height=2)
        self.button_width = Button(root, text='按钮宽度', width=16)
        # 按钮图片设置,image=图片变量。图片必须以变量的形式赋值给image,图片必须是gif格式。
        self.button_image_settings = Label(root, text='按钮图片设置:')
        gif = PhotoImage(file="1.gif")
        self.button_image = Button(root, image=gif)
        # 按钮文字对齐方式,可选项包括LEFT, RIGHT, CENTER
        self.text_alignment = Label(root, text='文字对齐方式:')
        self.text_left = Button(root, text='左对齐\n文字左侧对齐', justify=LEFT)
        self.text_center = Button(root, text='居中对齐\n文字居中对齐', justify=CENTER)
        self.text_tight = Button(root, text='右对齐\n文字右侧对齐', justify=RIGHT)
        # 按钮文字与边框之间的间距,padx='x轴方向间距大小',pady='y轴间距大小'
        self.text_border_spacing = Label(root, text='文字边框间距:')
        self.button_padx = Button(root, text='x轴间距', padx=0)
        self.button_pady = Button(root, text='y轴间距', pady=10)
        # 框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。
        self.box_style = Label(root, text='按钮框样式:')
        self.button_relief1 = Button(root, text='边框平坦', relief=FLAT)
        self.button_relief2 = Button(root, text='边框凹陷', relief=SUNKEN)
        self.button_relief3 = Button(root, text='边框凸起', relief=RAISED)
        self.button_relief4 = Button(root, text='边框压线', relief=GROOVE)
        self.button_relief5 = Button(root, text='边框脊线', relief=RIDGE)
        # 按钮达到限制字符后换行显示
        self.Line_shows_state = Label(root, text='文字换行显示:')
        self.selfLine_shows = Button(root, text='1234567890', wraplength=30)
        # 下划线。取值就是带下划线的字符串索引,为 0 时,第一个字符带下划线,为 1 时,第两个字符带下划线,以此类推
        self.underline_state = Label(root, text='文字标下划线:')
        self.underline = Button(root, text='12345', underline=2)
 
        '''grid布局'''
        self.btsd.grid(row=1, column=1, sticky='E')
        self.bts.grid(row=1, column=2, sticky='NW')
        self.button_state.grid(row=2, column=1, sticky='E')
        self.disabled_state.grid(row=2, column=2, sticky='NW')
        self.usual_status.grid(row=2, column=3, sticky='NW')
        self.active.grid(row=2, column=4, sticky='NW')
        self.mouse_click_color.grid(row=3, column=1, sticky='E')
        self.click_background_colour.grid(row=3, column=2, sticky='NW')
        self.click_foreground_colour.grid(row=3, column=3, sticky='NW')
        self.button_border_size.grid(row=4, column=1, sticky='E')
        self.border.grid(row=4, column=2, columnspan=3, sticky='NW')
        self.the_button_color.grid(row=5, column=1, sticky='E')
        self.button_background_colour.grid(row=5, column=2, sticky='NW')
        self.button_foreground_colour.grid(row=5, column=3, sticky='NW')
        self.button_font_format.grid(row=6, column=1, sticky='E')
        self.button_face1.grid(row=6, column=2, columnspan=2, sticky='NW')
        self.button_face2.grid(row=6, column=4, columnspan=2, sticky='NW')
        self.button_face3.grid(row=6, column=6, columnspan=2, sticky='NW')
        self.button_face4.grid(row=6, column=8, columnspan=2, sticky='NW')
        self.button_border_xy.grid(row=7, column=1, sticky='E')
        self.button_height.grid(row=7, column=2, sticky='NW')
        self.button_width.grid(row=7, column=3, columnspan=2, sticky='NW')
        self.button_image_settings.grid(row=8, column=1, sticky='E')
        self.button_image.grid(row=8, column=2, columnspan=3, sticky='NW')
        self.text_alignment.grid(row=9, column=1, sticky='E')
        self.text_left.grid(row=9, column=2, columnspan=2, sticky='NW')
        self.text_center.grid(row=9, column=4, columnspan=2, sticky='NW')
        self.text_tight.grid(row=9, column=6, columnspan=2, sticky='NW')
        self.text_border_spacing.grid(row=10, column=1, sticky='E')
        self.button_padx.grid(row=10, column=2, sticky='NW')
        self.button_pady.grid(row=10, column=3, sticky='NW')
        self.box_style.grid(row=11, column=1, sticky='E')
        self.button_relief1.grid(row=11, column=2, sticky='NW')
        self.button_relief2.grid(row=11, column=3, sticky='NW')
        self.button_relief3.grid(row=11, column=4, sticky='NW')
        self.button_relief4.grid(row=11, column=5, sticky='NW')
        self.button_relief5.grid(row=11, column=6, sticky='NW')
        self.Line_shows_state.grid(row=12, column=1, sticky='E')
        self.selfLine_shows.grid(row=12, column=2, sticky='NW')
        self.underline_state.grid(row=13, column=1, sticky='E')
        self.underline.grid(row=13, column=2, sticky='NW')
        root.mainloop()
 
    # 按钮开关设置
    def Button_text_switch(self):
        if self.bts['text'] == '按钮开始':  # 如果文字是开始,则改为关闭
            self.bts['text'] = '按钮关闭'
            print('按钮开始')
        else:  # 如果不是开始,则改为开始
            self.bts['text'] = '按钮开始'
            print('按钮关闭')
 
 
if __name__ == '__main__':
    buttons()

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python与pycharm有何区别

    python与pycharm有何区别

    在本篇文章里小编给大家整理了关于pycharm与python的区别相关内容,有需要的朋友们可以学习下。
    2020-07-07
  • 使用Python删除PDF中多余或空白页面的实现步骤

    使用Python删除PDF中多余或空白页面的实现步骤

    在处理 PDF 文件时,常常会遇到一些多余或空白的页面,这些页面不仅占据存储空间,还会影响文档的整洁性和可读性,这篇文章将探讨如何使用 Python删除PDF中多余或空白的页面,需要的朋友可以参考下
    2025-05-05
  • Python代码实现复制PowerPoint幻灯片

    Python代码实现复制PowerPoint幻灯片

    在处理演示文稿时,复制幻灯片是一项非常实用的功能,本文将详细介绍如何使用 Spire.Presentation for Python 库复制 PowerPoint 幻灯片,,帮助你构建完整的幻灯片管理解决方案
    2026-06-06
  • Python处理图像并生成JSONL元数据文件

    Python处理图像并生成JSONL元数据文件

    JSONL是一种轻量级的数据序列化格式,由一系列独立的 JSON 对象组成,本文主要为大家介绍了Python如何处理图像并生成JSONL元数据文件,感兴趣的可以了解下
    2025-05-05
  • python批处理将图片进行放大实例代码

    python批处理将图片进行放大实例代码

    最近处理一些规格不一的照片,需要修改成指定尺寸便于打印,下面这篇文章主要给大家介绍了关于python批处理将图片进行放大的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • 探索Python Slice函数灵活而强大的序列切片技术

    探索Python Slice函数灵活而强大的序列切片技术

    Python中的Slice函数是一种强大且灵活的序列切片技术,用于从字符串、列表、元组等序列类型中提取子集,本文将深入研究Slice函数的功能和用法,提供详细的示例代码和解释,帮助读者更全面地了解和应用这一功能
    2024-01-01
  • 用Python远程登陆服务器的步骤

    用Python远程登陆服务器的步骤

    这篇文章主要介绍了用Python远程登陆服务器的步骤,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-04-04
  • python OpenCV 实现高斯滤波详解

    python OpenCV 实现高斯滤波详解

    这篇文章主要介绍了Python+OpenCV 实现高斯滤波的过程,关于高斯滤波的解释,它是一种线性平滑滤波,适用于消除高斯噪声,具体实现过程跟随小编一起看看吧
    2021-10-10
  • tensorflow 初始化未初始化的变量实例

    tensorflow 初始化未初始化的变量实例

    今天小编就为大家分享一篇tensorflow 初始化未初始化的变量实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • pandas采样的实现方法

    pandas采样的实现方法

    pandas提供了多种方法进行随机采样,包括指定数量、按比例、设置随机种子、有无放回抽样及按列和分层抽样,下面就来介绍一下,感兴趣的可以了解一下
    2024-12-12

最新评论