Tkinter组件-Button按键

Button按键

Button 简介

在GUI图形界面中,用户需要有时候需要做一些确定的动作,例如播放视频,输入完账号密码后点击登录。这个时候需要就需要引入一个按钮(Button)供用户完成这个操作,在Tkinter内提供了Button方法,创建一个按钮。

Button在Tkinter中的调用

在Tkinter中,可以使用以下语法产生一个按钮。

python 复制代码
Btn01 = Button(master,text,height,width,
		anchor,command,font)
# 使用pack()布局,后面在布局会有详细解释
Btn01.pack()
"""
master:父类组件,表示这个Button放在那个父类容器下
text:Button上的文本呢
height:高度
width:宽度
anchor:文本在这个Button组件的什么位置,可选以下值:
		N、S、E、W、NE、NW、SE、SW、CENTER
command:绑定的事件,通常是一个函数
font:传入一个元组,(font,font_size)表示字体和字号
"""

如果我们在上述方法中重新更改其中的某一个参数,可以使用属性索引进行修改,如修改按键的文本内容为'退出',可以使用以下两个语句:

python 复制代码
# 方法一:利用属性索引进行修改属性值
Btn01['text']='退出'
# 方法二:对大多数组件都适用,即利用config方法
Btn01.config(text='退出')

也可以使用以下方法定义一个按钮:

python 复制代码
Button(master,text,height,width,anchor,command,
		font).pack()
# 参数一样,省去了接受的变量,更加简洁

案例

题目:我们需要定义两个按键,一个登录按键,当点击的时候弹出登陆成功。另外设计一个"常见问题答疑",当用户点击时,出现一些常见问题,可自定义。

具体实现代码如下:

python 复制代码
from tkinter import *
from tkinter import messagebox
from PIL import Image, ImageTk
class Application(Frame):
    def __init__(self, master):
        super().__init__(master)
        self.pack()
        self.CreateWidget()

    def CreateWidget(self):
        self.btn01= Button(master=self, text='登录', width=5, height=2, anchor='center', command=self.login, font=('楷体', 15))
        self.btn01.pack()
        original_image = Image.open(r'E:\Python_learning\GUI\sources\Ans_ques.png')  # 替换为你的图片路径
        resized_image = original_image.resize((50, 50))  # 调整图片大小
        self.photo = ImageTk.PhotoImage(resized_image)
        self.btn02 = Button(master=self, image=self.photo,text='常见问题答疑', font=('楷体', 15), fg='black', command=self.Answer, compound='left')
        self.btn02.pack()

    def login(self):
        messagebox.showinfo('登录','登陆成功')

    def Answer(self):
        messagebox.showinfo(title='常见问题答疑', message='1.一年有多少天?\n答:闰年有366天,平年365天\n'
                                                          '2.一年有几个大小月?分别是几月?\n答:1、3、5、7、8、10、12是大月;4、6、9、11是小月')
root = Tk()
app = Application(master=root)
root.title('Button组件控制')
root.geometry('500x300+800+350')
root.mainloop()

实现效果如下:

主界面如下所示:

当点击登录时,显示以下内容:

点击常用问题答疑,显示以下内容:

相关推荐
程序小武4 分钟前
python编辑器如何选择?
后端·python
一叶知秋121112 分钟前
UV管理python项目
python
AndrewHZ18 分钟前
【图像处理入门】2. Python中OpenCV与Matplotlib的图像操作指南
图像处理·python·opencv·计算机视觉·matplotlib·图像操作
golitter.1 小时前
langchain学习 01
python·学习·langchain
一叶知秋12111 小时前
LangChain Prompts模块
python
量化金策2 小时前
截面动量策略思路
python
心软且酷丶2 小时前
leetcode:7. 整数反转(python3解法,数学相关算法题)
python·算法·leetcode
逾非时3 小时前
python:selenium爬取网站信息
开发语言·python·selenium
天才测试猿3 小时前
Selenium操作指南(全)
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
不学无术の码农4 小时前
《Effective Python》第六章 推导式和生成器——避免在推导式中使用超过两个控制子表达式
开发语言·python