【Python】【进阶篇】四、Tkinter的Button按钮控件

目录

  • 四、Tkinter的Button按钮控件

四、Tkinter的Button按钮控件

Button 控件是 Tkinter 中常用的窗口部件之一,同时也是实现程序与用户交互的主要控件。用户通过点击按钮的行为来执行回调函数,是 Button 控件的主要功用。首先自定义一个函数或者方法,然后将函数与按钮关联起来,最后,当用户按下这个按钮时,Tkinter 就会自动调用相关函数。

from tkinter import Tk, Button

# 创建窗口
win = Tk()


# 设置回调函数
def callback():
    print("click me!")


# 使用按钮控件调用函数
Button(win, text="点击触发事件", command=callback).pack()
# 显示窗口
win.mainloop()

Button 按钮控件的常用函数 –

名称说明
anchor控制文本所在的位置,默认为中心位置(CENTER)
activebackground当鼠标放在按钮上时候,按妞的背景颜色
activeforeground当鼠标放在按钮上时候,按钮的前景色
bd按钮边框的大小,默认为 2 个像素
bg按钮的背景色
command用来执行按钮关联的回调函数。当按钮被点击时,执行该函数
fg按钮的前景色
font按钮文本的字体样样式
height按钮的高度
highlightcolor按钮控件高亮处要显示的颜色
image按钮上要显示的图片
justify按钮显示多行文本时,用来指定文本的对齐方式,参数值有 LEFT/RIGHT/CENTER
padx/padypadx 指定 x 轴(水平方向)的间距大小,pady 则表示 y轴(垂直方向)的间距大小
ipadx/ipadyipadx 指标签文字与标签容器之间的横向距离;ipady 则表示标签文字与标签容器之间的纵向距离
state设置按钮的可用状态,可选参数有NORMAL/ACTIVE/DISABLED,默认为 NORMAL
text按钮控件要显示的文本

下面演示Button按钮的简单应用 –

from tkinter import Tk, messagebox, Button

win = Tk()
# 设置窗口的标题
win.title('Python自学')
# 设置并调整窗口的大小、位置
win.geometry('480x270+300+200')


# 当按钮被点击的时候执行click_button()函数
def click_button():
    # 使用消息对话框控件,showinfo()表示温馨提示
    messagebox.showinfo(title='温馨提示', message='欢迎使用Python自学')


# 点击按钮时执行的函数
Button(win, text='前往', bg='#7CCD7C', width=20, height=5, command=click_button).pack()
# 显示窗口
win.mainloop()

上面可以看到点击Button按钮控件触发相应事件,当用户点击“前往”按钮,触发生成新的对话框。

下面增加按钮背景图,代码如下 –

from tkinter import Tk, messagebox, Button, PhotoImage

win = Tk()
# 设置窗口的标题
win.title('Python自学')
# 设置并调整窗口的大小、位置
win.geometry('480x270+300+200')


# 当按钮被点击的时候执行click_button()函数
def click_button():
    # 使用消息对话框控件,showinfo()表示温馨提示
    messagebox.showinfo(title='温馨提示', message='欢迎使用Python自学')


img = PhotoImage(file="./btn1.png")
# 点击按钮时执行的函数
Button(win, text='确定', image=img, bg='#7CCD7C', width=100, height=50, command=click_button).pack()
# 显示窗口
win.mainloop()

这里按钮的布局也可以使用grid() 网状布局 –
参数值有 N/S/W/E(上/下/左/右),而且可以组合在一起使用

from tkinter import messagebox,Tk,Button,Label,Entry

win = Tk()
win.title("C语言中文网")
win.iconbitmap('./python.png')
win.geometry('380x270+100+100')
win.resizable(0, 0)
# 将俩个标签分别布置在第一行、第二行
Label(win, text="账号:").grid(row=0)
Label(win, text="密码:").grid(row=1)
# 创建输入框控件
e1 = Entry(win)
# 以 * 的形式显示密码
e2 = Entry(win, show='*')
e1.grid(row=0, column=1, padx=10, pady=5)
e2.grid(row=1, column=1, padx=10, pady=5)


# 编写一个简单的回调函数
def login():
    messagebox.showinfo(title='登录成功',message="欢迎您到来")


# 使用 grid()的函数来布局,并控制按钮的显示位置
Button(win, text="登录", width=12, command=login).grid(row=3, column=0, sticky="W", padx=10, pady=5)
Button(win, text="退出", width=12, command=win.quit).grid(row=3, column=1, sticky="E", padx=10, pady=5)
win.mainloop()

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年8月23日
下一篇 2023年8月23日

相关推荐