首页 > 其他分享 >Tkinter组件-Button按键

Tkinter组件-Button按键

时间:2025-01-11 18:32:45浏览次数:3  
标签:Tkinter text Button master 组件 font self pack

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

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

标签:Tkinter,text,Button,master,组件,font,self,pack
From: https://blog.csdn.net/weixin_50164178/article/details/145080383

相关文章

  • 2、数据验证组件框架:FluentValidation for .NET - 开源项目研究文章
    FluentValidation是一个开源的.NET验证框架,以其优雅、简洁和链式操作而著称。它支持MVC5、WebApi2和ASP.NETCore的深度集成,并提供了丰富的内置验证器,同时也支持自定义验证器和本地化多语言。使用FluentValidation,开发者可以通过继承AbstractValidator<T>来创......
  • 请说说在Angular中哪些类型的组件可以创建自定义指令?
    在Angular中,可以创建自定义指令的组件类型主要包括以下几种:模板指令(组件):模板指令实际上就是组件,它们是Angular中非常核心的部分。每个Angular组件都是一个自定义的模板指令,它定义了视图的HTML结构以及与之关联的逻辑。通过@Component装饰器,我们可以创建并配置一个组件,其中包括......
  • 请说说在Angular中组件和指令的生命周期挂钩是什么?
    在Angular中,组件和指令的生命周期挂钩(LifecycleHooks)是特定的事件,允许开发者在组件或指令生命周期的特定阶段执行自定义的代码逻辑。这些挂钩提供了一种机制,让开发者能够更好地控制和管理组件或指令的创建、更新和销毁过程。组件的生命周期挂钩包括:ngOnChanges:当Angular设置......
  • Vue.js组件开发-使用EventBus实现组件间高效通信
    在Vue.js中,EventBus是一种用于组件间通信的方式,特别是在没有父子关系的组件之间。我们可以创建一个空的Vue实例来作为事件总线。实例:展示如何使用EventBus实现两个兄弟组件之间的通信。首先,我们需要创建一个EventBus:importVuefrom'vue';exportconstEventBus=newVu......
  • @LocalBuilder装饰器: 维持组件父子关系
    一、前言当开发者使用@Builder做引用数据传递时,会考虑组件的父子关系,使用了bind(this)之后,组件的父子关系和状态管理的父子关系并不一致。为了解决组件的父子关系和状态管理的父子关系保持一致的问题,引入@LocalBuilder装饰器。@LocalBuilder拥有和局部@Builder相同的功能,......
  • Vue滚动组件终极指南:如何选择最适合的滚动解决方案
    前言在Vue项目开发中,滚动效果是一个常见需求。本文将详细介绍几种主流的滚动解决方案,帮助开发者根据实际场景选择最适合的组件。一、主流滚动方案对比1.vue-seamless-scroll适合简单的无缝滚动场景。<template><vue-seamless-scroll:data="notifications":clas......
  • uniapp(vue3) -实现横向滚动选择日期组件,手势左右滑动选择日期,类似电影选票日期Tabs选
    效果图在uni-app手机h5网页网站/支付宝微信小程序/安卓app/苹果app/nvue等(全平台兼容)开发中,实现uniapp日历横向日期选择器可滑动可点击,自定义横向滑动选择日期周几,获取日历并列出当前月前几个月的日期,用户手势横向滑动日历选择器插件,支持自定义任意样式、自定义展示的日......
  • uniapp - 实现精美全屏抽屉弹窗带动画过渡功能组件,从页面左侧或右侧弹出抽屉窗口带挤
    效果图在uni-app手机h5网页网站/支付宝微信小程序/安卓app/苹果app/nvue等(全平台兼容)开发中,实现uniapp抽屉弹框组件,从页面全屏侧滑弹出抽屉窗口,简单易用的Drawer抽屉插件,uniApp抽屉组件好看弹跳挤压出现动画过渡效果,适用于侧边隐藏时导航菜单、我的个人信息等场景,自定义......
  • 学习笔记(五十一):onAreaChange 组件区域变化监听
    onAreaChange(event:(oldValue:Area,newValue:Area)=>void):T 组件区域变化时触发该回调。仅会响应由布局变化所导致的组件大小、位置发生变化时的回调。由绘制变化所导致的渲染属性变化不会响应回调,如translate、offset。若组件自身位置由绘制变化决定也不会响应回......
  • vue3的12种组件通信方式
    对于日常使用vue3开发项目的前端小伙伴来说,组件通信方式可以说是必会的基本功,今天带大家一起盘下vue3的通信方式。我们这里按照组件的关系来划分。总共包含12中组件通信方式。一、父子通信propsdefineEmits$attrs$ref+defineExpose$parent二、兄弟组件通信mitt......