Python中使用tkinter模块和类结构的结合使用举例——编写制作一个简单的加数GUI界面

news2024/12/23 18:21:48

Python中使用tkinter模块和类结构的结合使用举例——编写制作一个简单的加数GUI界面

这里写目录标题

  • Python中使用tkinter模块和类结构的结合使用举例——编写制作一个简单的加数GUI界面
    • 一、tkinter模块和类的简述
      • 1.1 tkinter的简要介绍
      • 1.2 类结构的简要介绍
    • 二、基于类机构和tkinter模块创建GUI举例
      • 2.1 问题描述
      • 2.2 具体实现程序
      • 2.3 运行结果
    • 三、小结

编写程序实现GUI界面是一种重要的编程技能,Python 作为一种面向对象的程序编程语言,也提供了GUI设计的库。本文以tkinter库为基础进行GUI的简单设计举例,并在编写过程中说明类结构的定义方法。

一、tkinter模块和类的简述

1.1 tkinter的简要介绍

在python中,编写GUI界面(图形用户界面)时候,有时会采用tkinter模块实现。tkinter作为一种最常用的ython的实际标准GUI包,是值得熟悉的,具体介绍见本人博文(链接: Python中的tkinter工具包帮助文档查询以及Python其他GUI工具包分类)

1.2 类结构的简要介绍

类提供了将数据和功能绑定在一块使用的数据结构。类是对象实例创建的模板。具体见本人博文,链接: Python中的类和对象的概念理解和创建方法1——基本概念的理解和具体程序实例。

二、基于类机构和tkinter模块创建GUI举例

2.1 问题描述

本文采用Python中的tkinter模块编写实现一个加法器的GUI界面:在GUI界面中,有一个加1按钮,和加10按钮,并使用标签分别显示加1和加10后的结果。

2.2 具体实现程序

具体程序如下:

import tkinter as tk

## 构建一个类:NumberCounter
class NumberCounter:
    ## 定义第一个函数:函数__init__,其作用是建立一个GUI界面
    def __init__(self, root):
        self.root = root
        ##设置GUI界面的名称和尺寸
        self.root.title("加法计数")
        self.root.geometry("200x100")

        ##设置GUI界面中的第一个label
        self.number1 = 0
        self.label1 = tk.Label(self.root, text=str(self.number1),fg="black", bg="white")
        self.label1.pack()

        ##设置GUI界面中的第二个label
        self.number2 = 0
        self.label2 = tk.Label(self.root, text=str(self.number2),fg="red", bg="yellow")
        self.label2.pack()

        ## 设置GUI界面中的第一个按钮
        self.button1 = tk.Button(self.root, text="加一", command=self.increment_number1,fg="black", bg="white")
        self.button1.pack()

        ## 设置GUI界面中的第二个按钮
        self.button2 = tk.Button(self.root, text="加十", command=self.increment_number2,fg="red", bg="yellow")
        self.button2.pack()

     ## 定义第二个函数:函数increment_number1,作用为加1
    def increment_number1(self):
        self.number1 += 1
        self.label1.config(text=str(self.number1))
     ## 定义第三个函数:函数increment_number2,作用为加10
    def increment_number2(self):
        self.number2 += 10
        self.label2.config(text=str(self.number2))

if __name__ == "__main__":
    root = tk.Tk()
    number_counter = NumberCounter(root)
    root.mainloop()

2.3 运行结果

运行初始结果如图1所示。点击GUI对应按钮后的一个实例,如图2所示。

图1 初始界面
图1 初始界面

图2 鼠标点击操作后的一个显示状态
图2 鼠标点击操作后的一个显示状态

三、小结

本文通过使用tkinter模块库和类结构实现了一个计数器的GUI界面,增进了对tkinter制作GUI界面的初步认识以及对类方法具体应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1657548.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

拼多多强付费二阶段断流怎么办?分几种情况解决

关于断流的问题应该有不少人遇到过,即使是强付费,也不是一直有流量,到了二阶段说断流就断流,同样不能幸免。那么强付费二阶段直接断流是什么原因呢?今天跟大家讲一下强付费断流可能遇到的几种情况,要怎么应对。 第一…

利用自动获客软件实现高效精准获客

在数字化时代的浪潮中,企业之间的竞争愈发激烈。客户资源的获取成为企业生存和发展的关键。传统的获客方式如广告投放、线下推广等不仅成本高昂,而且效率和准确性难以保证。随着科技的进步,自动获客软件应运而生,它以其独特的优势…

C语言洛谷题目分享(11)回文质数

目录 1.前言 2.题目:回文质数 1.题目描述 2.输入格式 3.输出格式 4.输入输出样例 5.题解 3.小结 1.前言 哈喽大家好,今儿继续为大家分享一道蛮有价值的一道题,希望大家多多支持喔~ 2.题目:回文质数 1.题目描述 因为 151 …

【MySQL数据库】详解数据库审核工具SQLE的部署及接口调用

SQLE部署及使用 1. 部署SQLE SQLE相信大家都不陌生吧,它是一款开源,支持多场景审核,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL审核工具。我们可以基于此工具进行数据库SQL审核,提升SQL脚本质量…

ue引擎游戏开发笔记(36)——为射击落点添加特效

1.需求分析: 在debug测试中能看到子弹落点后,需要给子弹添加击中特效,更真实也更具反馈感。 2.操作实现: 1.思路:很简单,类似开枪特效一样,只要在头文件声明特效变量,在fire函数中…

数据挖掘(一)数据类型与统计

前言 打算新开一个笔记系列,基于国防科技大学 丁兆云老师的《数据挖掘》 数据挖掘 1、数据类型与统计 数据统计 最大值,最小值,平均值,中位数,位数,方差等统计指标 df.describe() #当调用df.describe(…

分布式锁与秒杀

分布式锁与秒杀 1. 分布式锁1.1 常用Redis分布式锁方案三:使用Lua脚本(包含SETNX EXPIRE两条指令) 秒杀 1. 分布式锁 https://www.cnblogs.com/shoshana-kong/p/17519673.html 1.1 常用Redis分布式锁方案三:使用Lua脚本(包含SETNX EXPIRE两条指令) …

【JAVA基础之装箱和拆箱】自动装箱和自动拆箱

🔥作者主页:小林同学的学习笔录 🔥mysql专栏:小林同学的专栏 目录 1.包装类 1.1 概述 1.2 Integer类 1.3 装箱和拆箱 1.4 自动装箱和自动拆箱 1.5 基本类型与字符串之间的转换 1.5.1 基本类型转换为字符串 1.5.2 字符串转…

力扣每日一题111:二叉树的最小深度

题目 简单 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:2示例 2&#x…

银行职员向媒体投稿发文章我找到了好方法

作为一名基层银行的媒体联络专员,我的日常工作中有一项至关重要的任务,那就是代表我所在的支行向各大媒体投稿,传播我们的金融服务、产品动态以及社会责任实践。起初,这项看似简单的工作却成了我职业生涯中的一大挑战。传统的邮件投稿方式,不仅耗时费力,而且审核流程严格,稿件从…

python 和 MATLAB 都能绘制的母亲节花束!!

hey 母亲节快到了,教大家用python和MATLAB两种语言绘制花束~这段代码是我七夕节发的,我对代码进行了简化,同时自己整了个python版本 MATLAB 版本代码 function roseBouquet_M() % author : slandarer% 生成花朵数据 [xr,tr]meshgrid((0:24).…

杨辉三角的打印

题目内容: 在屏幕上打印杨辉三角。 思路: 首先我们通过观察发现,每一步的打印都与行列数有关,中间的数据由这一列和上一行的前一列数据控制。所以我们可以使用二维数组进行操作: (1&#xff…

在k8s中部署hadoop后的使用,包括服务端及客户端(客户端的安装及与k8s服务的对接)

(作者:陈玓玏) 在https://blog.csdn.net/weixin_39750084/article/details/136744772?spm1001.2014.3001.5502和https://blog.csdn.net/weixin_39750084/article/details/136750613?spm1001.2014.3001.5502这两篇文章中,说明…

Redis + OpenResty 多级缓存

多级缓存 初识 OpenResty OpenResty - 开源官方站 基于 Nginx的高性能 Web 平台,用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。 具备Nginx的完整功能基于Lua语言进行扩展,集成了大量精良的 Lua 库、第三方模块允…

AlibabaCloud微服务下的链路追踪系统实战详解

🚀 作者 :“二当家-小D” 🚀 博主简介:⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人,8年开发架构经验,精通java,擅长分布式高并发架构,自动化压力测试,微服务容器化k…

【深耕 Python】Quantum Computing 量子计算机(3)重要数学公式一览

写在前面 往期量子计算机博客: 【深耕 Python】Quantum Computing 量子计算机(1)图像绘制基础 【深耕 Python】Quantum Computing 量子计算机(2)绘制电子运动平面波 正文 偏微分: 交换关系&#xff…

MATLAB 三维空间中在两点之间等间隔插入多个点 (67)

MATLAB 三维空间中在两点之间等间隔插入多个点 (67) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 用于加密直线点云,具体为根据给定的直线端点,沿着该直线方向,插入多个点,从而加密。具体方法和效果如下所示: 二、算法实现 1.代码 代码如下(示例): % 定…

数据的输入和输出

早期的总线系统 为了解决通信的问题、主板上铺设了一条公共线路、各个设备都连接到这条线路上、不管谁要和谁通信、都能使用它来传输、这条线路就是总线。 总线上有CPU、内存、鼠标、键盘、硬盘、网卡、声卡、显卡等… 说是一条总线、实际上是包含了传输数据的数据总线、传输…

【C++】继承 — 继承的引入、赋值切片详细讲解

前言 我们知道C语言是一门面向对象编程的语言,而面向对象编程有三大特性,它们分别是: 封装继承多态 目录 1. 继承的概念及定义1.1继承的概念1.2继承的定义格式1.3 继承的使用 2 基类和派生类对象赋值转换3 继承中的作用域3.1 派生类对象的存…

YOLOv9中模块总结补充|RepNCSPELAN4详图

专栏地址:目前售价售价69.9,改进点70 专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,助力高效涨点!!! 1. RepNCSPELAN4详图 RepNCSPELAN4是YOLOv9中的特征提取-融合模块,类似前几…