🍉前言
Button(按钮)用来执行用户的单击操作。Button 可以包含文本,也可以包含图像。按钮被单击后会自动调用对应事件绑定的方法。
Button 控件是一种标准 Tkinter 控件, 用来展现不同样式的按钮. Button 控件被用以和用户交互, 比如按钮被鼠标点击后, 某种操作被启动. 和 Label 控件类似, 按钮可以展示图片或者文字. 不同的是, Label 控件可以指定字体, Button 控件只能使用单一的字体. Button 上的文字可以多行显示.
可以将一个 Python 函数或方法绑定到一个 Button 控件. 这个函数或方法将在按钮被点击时执行.
🍉属性
按钮Button控件的属性:
activebackground, activeforeground
类型:颜色;
说明:当按钮被激活时所使用的颜色。
anchor
类型:常量;
说明:控制按钮上内容的位置。使用N, NE, E, SE, S, SW, W, NW,or CENTER这些值之一。默认值是CENTER。
background (bg), foreground (fg)
类型:颜色;
说明:按钮的颜色。默认值与特定平台相关。
bitmap
类型:位图;
borderwidth (bd)
类型:整数;
说明:按钮边框的宽度。默认值与特定平台相关。但通常是1或2象素。
command
类型:回调;
说明:当按钮被按下时所调用的一个函数或方法。所回调的可以是一个函数、方法或别的可调用的Python对象。
cursor
类型:光标;
说明:当鼠标移动到按钮上时所显示的光标。
default
类型:常量;
说明:如果设置了,则按钮为默认按钮。注意这个语法在Tk 8.0b2中已改变。
disabledforeground
类型:颜色;
说明:当按钮无效时的颜色。
font
类型:字体;
说明:按钮所使用的字体。按钮只能包含一种字体的文本。
highlightbackground, highlightcolor
类型:颜色;
说明:控制焦点所在的高亮边框的颜色。当窗口部件获得焦点的时候,边框为highlightcolor所指定的颜色。否则边框为highlightbackground所指定的颜色。默认值由系统所定。
highlightthickness
类型:距离;
说明:控制焦点所在的高亮边框的宽度。默认值通常是1或2象素。
image
类型:图象;
说明:在部件中显示的图象。如果指定,则text和bitmap选项将被忽略。
justify
类型:常量;
说明:定义多行文本如何对齐。可取值有:LEFT, RIGHT, 或 CENTER(默认)。
padx, pady
类型:距离;
说明:指定文本或图象与按钮边框的间距。
relief
类型:常量;
说明:边框的装饰。通常按钮按下时是凹陷的,否则凸起。另外的可能取值有GROOVE, RIDGE, 和 FLAT。
state
类型:常量;
说明:按钮的状态:NORMAL, ACTIVE 或 DISABLED。默认值为NORMAL。
takefocus
类型:标志;
说明:表明用户可以Tab键来将焦点移到这个按钮上。默认值是一个空字符串,意思是如果按钮有按键绑定的话,它可以通过所绑定的按键来获得焦点。
text
类型:字符串;
说明:显示在按钮中的文本。文本可以是多行。如果bitmaps或image选项被使用,则text选项被忽略。
textvariable
类型:变量;
说明:与按钮相关的Tk变量(通常是一个字符串变量)。如果这个变量的值改变,那么按钮上的文本相应更新。
underline
类型:整数;
说明:在文本标签中哪个字符加下划线。默认值为-1,意思是没有字符加下划线。
width, height
类型:距离;
说明:按钮的尺寸。如果按钮显示文本,尺寸使用文本的单位。如果按钮显示图象,尺寸以象素为单位(或屏幕的单位)。如果尺寸没指定,它将根据按钮的内容来计算。
wraplength
类型:距离;
说明:确定一个按钮的文本何时调整为多行。它以屏幕的单位为单位。默认不调整。
🍉具体实例
"""测试Button组件的基本用法,使用面向对象的方式"""
from tkinter import *
from tkinter import messagebox
class Application(Frame):
def __init__(self, master=None):
super().__init__(master) # super()代表的是父类的定义,而不是父类对象
self.master = master
self.pack()
self.createWidget()
def createWidget(self):
"""创建组件"""
self.btn01 = Button(root, text="登录 ",
width=12,height=2,anchor=NE,command=self.login)
self.btn01.pack()
global photo
photo = PhotoImage(file="imgs/start.gif")
self.btn02 = Button(root, image=photo,command=self.login)
self.btn02.pack()
self.btn02.config(state="disabled") #设置按钮为禁用
def login(self):
messagebox.showinfo("登录成功!欢迎开始游戏!", "欢迎来到王者荣耀")
if __name__ == '__main__':
root = Tk()
root.geometry("500x330+500+400")
app = Application(master=root)
root.mainloop()
🍉运行结果