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

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界面中的第一个labelself.number1 = 0self.label1 = tk.Label(self.root, text=str(self.number1),fg="black", bg="white")self.label1.pack()##设置GUI界面中的第二个labelself.number2 = 0self.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,作用为加1def increment_number1(self):self.number1 += 1self.label1.config(text=str(self.number1))## 定义第三个函数:函数increment_number2,作用为加10def increment_number2(self):self.number2 += 10self.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.hqwc.cn/news/681863.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES:聚合查询语法

基础查询结构: GET http://ip:prot/textbook/_search { "query" : { ...query子句... }, "aggs" : { "agg_name":{ "agg_type": { "agg_arg": agg_arg_value } } }, "sort" : { ..sor…

YOLOv8+PyQt5蔬菜识别检测(26种不同蔬菜类型,yolov8模型,从图像、视频和摄像头三种路径识别检测)

1.基于最新的YOLOv8训练的蔬菜检测模型,和基于PyQt5制作的可视蔬菜检测系统,该系统可自动检测和识别图片或视频当中出现的26种蔬菜:鸡蛋, 姜, 菜椒, 南瓜, 山药, 辣椒, 霉豆, 蘑菇, 香菜, 茼蒿, 油菜, 黄瓜, 角瓜, 莲藕, 西兰花, 菜花, 土豆,…

SpringBoot结合Canal 实现数据同步

1、Canal介绍 Canal 指的是阿里巴巴开源的数据同步工具,用于数据库的实时增量数据订阅和消费。它可以针对 MySQL、MariaDB、Percona、阿里云RDS、Gtid模式下的异构数据同步等情况进行实时增量数据同步。 当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.…

揿针贴一般贴多长时间?

点击文末领取揿针的视频教程跟直播讲解 揿针作为一种侵入性疗法,一般贴48-72小时,相对来说比较安全,取针后24小时内都不建议碰水,以免局部发炎。 一般揿针都贴到背部以及需要治疗的区域,揿针进针的深度非常浅&#x…

每日Attention学习5——Multi-Scale Channel Attention Module

模块出处 [link] [code] [WACV 21] Attentional Feature Fusion 模块名称 Multi-Scale Channel Attention Module (MS-CAM) 模块作用 通道注意力 模块结构 模块代码 import torch import torch.nn as nnclass MS_CAM(nn.Module):def __init__(self, channels64, r4):super(…

物联网网关制造生产全流程揭秘!

如果您正有开发和定制物联网网关的计划,找一个专业的物联网设备厂商协助您制造生产物联网网关可以节省大量时间和成本,可以让您能专注于当前核心业务,而无需将精力过多地投入到自己不擅长的领域。 当然,了解物联网网关的测试和制…

Android 高版本实现沉浸式状态栏

目前实现的android高版本沉浸式状态栏分为两类: 1、是纯透明状态栏; 2、是纯透明状态栏,但是状态栏字体是黑色; 将状态栏的代码封装到BaseActivity中更方便使用: BaseActivity: public abstract class BaseActivit…

重学java 33.API 4.日期相关类

任何事,必作于细,也必成于实 —— 24.5.9 一、Date日期类 1.Date类的介绍 1.概述: 表示特定的瞬间,精确到亳秒 2.常识: a.1000毫秒 1秒 b.时间原点:1970年1月1日 0时0分0秒(UNIX系统起始时间),叫做格林威治时间,在0时区上 c.时区:北京位于东八区,一个时区…

一个递推通项公式研究

递推关系为a(n) ​pa(n−1) ​ qa(n−2) ​,本项前一项*2前前项,具体如 1,1,3,7,17,41,99,239,…… 一般的递推关系可以用以下方法 得两个解: …

WPF控件之StackPanel布局控件

StackPanel别名堆栈panel 使其子元素按照一定方式进行布局&#xff0c;子元素排布方式要么设置为水平排布&#xff0c;要么垂直排布。 属性 Orientation设置排列方式(默认的是垂直排布) : Horizontal水平排布 Vertical 垂直排布 实例 <StackPanel Orientation"Vert…

【Python】什么是皮尔森系数

我不完美的梦 你陪着我想 不完美的勇气 你说更勇敢 不完美的泪 你笑着擦干 不完美的歌 你都会唱 我不完美心事 你全放在心上 这不完美的我 你总当做宝贝 你给我的爱也许不完美 但却最美 &#x1f3b5; 周冬雨《不完美女孩》 皮尔森相关系数&#xff08;Pe…

力扣HOT100 - 4. 寻找两个正序数组的中位数

解题思路&#xff1a; 两个数组合并&#xff0c;然后根据奇偶返回中位数。 class Solution {public double findMedianSortedArrays(int[] nums1, int[] nums2) {int m nums1.length;int n nums2.length;int[] nums new int[m n];if (m 0) {if (n % 2 0) return (nums2…