当前位置: 首页 > news >正文

Tkinter组件-Button按键

Button按键

Button 简介

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

Button在Tkinter中的调用

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

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)表示字体和字号
"""

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

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

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

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

案例

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

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()

实现效果如下:
主界面如下所示:
在这里插入图片描述
当点击登录时,显示以下内容:
在这里插入图片描述
点击常用问题答疑,显示以下内容:
在这里插入图片描述


http://www.mrgr.cn/news/83468.html

相关文章:

  • Chart.js 雷达图:数据可视化利器
  • L4-Prompt-Delta
  • Windows使用AutoHotKey解决鼠标键连击现象(解决鼠标连击、单击变双击的故障)
  • 运维安全中心(堡垒机)
  • 【DES加密】
  • 记录一个移动端表格布局,就是一行标题,下面一列是对应的数据,一条一条的数据,还有点击数据进入详情的图标,还可以给一列加input输入框,还可以一对多
  • 《ROS2 机器人开发 从入门道实践》 鱼香ROS2——第6章内容
  • Windows 下Mamba2 / Vim / Vmamba 环境安装问题记录及解决方法终极版(无需绕过triton)
  • 攻防靶场(34):隐蔽的计划任务提权 Funbox1
  • 【云计算】OpenStack云计算平台
  • Qt 5.14.2 学习记录 —— 십일 QLCDNumber、ProgressBar、QCalendarWidget
  • 前端开发:Web前端和HTML
  • C++之函数提高
  • 国产编辑器EverEdit - 扩展脚本:新建同类型文件(避免编程学习者反复新建保存练习文件)
  • C语言 操作符_位操作符、赋值操作符、单目操作符
  • 仓颉笔记——写一个简易的web服务并用浏览器打开
  • 代码随想录算法训练营第3天(链表1)| 203.移除链表元素 707.设计链表 206.反转链表
  • 卷积神经02-CUDA+Pytorch环境安装
  • 初识 Git——《Pro Git》
  • 哈希表及模拟实现
  • 【老白学 Java】项目演练 - Quizzes #3
  • nvim 打造成可用的IDE(2)
  • 性能测试04|JMeter:连接数据库、逻辑控制器、定时器
  • 二分答案(进阶)
  • HarmonyOS:@LocalBuilder装饰器: 维持组件父子关系
  • 算法题(32):三数之和