【Python-tkinter】实现简单的文本编辑器(附带教程源码)

news2024/11/17 21:40:39

如果你也是刚入门的小伙伴呢,小编为你们准备了入门Python学习籽料和Python入门实践,点击领取(无偿获得)
在这里插入图片描述

利用tkinter实现简单的文本编辑器。创建一个简单的文本编辑器。可以用读文件的方式在一个文本域里显示一些文字供用户编辑。

当用户退出程序时(通过 QUIT 按钮)会询问用户是否保存所作的修改。

(直接上代码有注释

 1 # -\*- encoding: utf-8 -\*-
 2 '''
 3 @File    :   简单文本编辑器.py
 4 @Time    :   2020/04/05 11:35:39
 5 @Author  :   Konggu 
 6 @Desc    :   None
 7 '''
 8 import os 9 import tkinter as tk
10 import tkinter.messagebox
11 from functools import partial as pto
12 from tkinter import filedialog, dialog
13 
14 path = r'F:\\Python\\网络通信编程技术(2020-3-5)\\第五周作业\\\\'
15 file\_text = ''
16 window = tk.Tk()
17 window.title('啊嘞嘞?')    # 窗口标题
18 window.geometry('500x300')    # 窗口尺寸
19 t1 = tk.Text(window, width=50, height=10, bg='palegreen', font=(12))
20 t1.pack()
21 
22 # 打开文件
23 def open\_file():
24     file\_path = filedialog.askopenfilename(title=u'选择文件', initialdir=(os.path.expanduser(path)))   # 文件选择框(选择文件)
25     with open(file=file\_path, mode='r+', encoding='utf-8') as f:
26         file\_text = f.read()      # 读文件
27     t1.insert('insert', file\_text)
28 
29 # 保存文件
30 def save():
31     file\_path = path + '文件.txt'       # 指定一个路径
32     file\_text = t1.get('1.0', tk.END)
33     if file\_path is not None:
34         with open(file=file\_path, mode='w', encoding='utf-8') as f:       # 保存到指定路径
35 f.write(file\_text)
36         t1.delete('1.0', tk.END)
37         print("保存成功")
38         tkinter.messagebox.showinfo(title='提示',message='保存成功!')
39 
40 # 退出
41 def quit():
42     res = tk.messagebox.askokcancel(title = '等一下!',message='保存一手吗?')      # 弹出框,可选(确定/取消)
43     print(res)
44     if res:
45 save()
46 window.quit()
47     else:
48         pass
49 
50 def main():
51     bt1 = tk.Button(window, text='打开文件', width=15, height=2, command=open\_file)
52 bt1.pack()
53     bt2 = tk.Button(window, text='退出', width=15, height=2, command=quit)
54 bt2.pack()
55 window.mainloop()
56 
57 
58 if \_\_name\_\_ == "\_\_main\_\_":
59     main()

最后的效果:

单击 “打开文件” :

“文件.txt” 里的内容:

选择 “文件.txt” 打开,效果:

可以在上面的文本框里进行编辑:

当单击 “退出” 时,弹出 “是否保存文件” 的对话框:

单击确定即可在原文件保存:

然后我们看到,“文件.txt” 里的内容已经改变:

这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!
在这里插入图片描述

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

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

相关文章

大模型分布式训练并行技术(七)-自动并行

近年来,随着Transformer、MOE架构的提出,使得深度学习模型轻松突破上万亿规模参数,传统的单机单卡模式已经无法满足超大模型进行训练的要求。因此,我们需要基于单机多卡、甚至是多机多卡进行分布式大模型的训练。 而利用AI集群&a…

5--苍穹外卖-SpringBoot项目中菜品管理 详解(一)

目录 公共字段自动填充 问题分析 实现思路 代码开发 步骤一 步骤二 功能测试 新增菜品 需求分析和设计 代码开发 文件上传接口 功能测试 1--苍穹外卖-SpringBoot项目介绍及环境搭建 详解-CSDN博客 2--苍穹外卖-SpringBoot项目中员工管理 详解(一&#…

医疗器械库存管理软件 符合gsp要求

软件介绍: 盘谷医疗器械进销存管理软件契合医疗器械行业特点,符合gsp要求,专为一二三类医疗器械经营企业开发的医疗器械进销存、质量验收、GSP管理、UDI扫码识别、财务管理一体化经营管理系统,符合药监新版医疗器械经营质量管理规…

C++在线开发环境搭建(WEBIDE)

C在线开发环境搭建 一、环境说明1.1 系统基础环境说明1.1 docker-ce社区版安装 二、codeserver构建2.1 构建codeserver环境的docker容器2.2 构建docker镜像2.3 运行docker2.4 运行展示 三、构建codeserver中的c开发环境3.1 插件下载3.2 插件安装 四、其他知识4.2 code-server配…

vue仿chatGpt的AI聊天功能--大模型通义千问(阿里云)

vue仿chatGpt的AI聊天功能–大模型通义千问(阿里云) 通义千问是由阿里云自主研发的大语言模型,用于理解和分析用户输入的自然语言。 1. 创建API-KEY并配置环境变量 打开通义千问网站进行登录,登陆之后创建api-key,右…

20个数字经济创新发展试验区建设案例【2024年发布】

数据简介:国家数字经济创新发展试验区的建设是一项重要的国家战略,旨在推动数字经济与实体经济的深度融合,促进经济高质量发展。自2019年10月启动以来,包括河北省(雄安新区)、浙江省、福建省、广东省、重庆…

【java】前端RSA加密后端解密

目录 1. 说明2. 前端示例3. 后端示例3.1 pom依赖3.2 后端结构图3.3 DecryptHttpInputMessage3.4 ApiCryptoProperties3.5 TestController3.6 ApiCryptoUtil3.7 ApiDecryptParamResolver3.8 ApiDecryptRequestBodyAdvice3.9 ApiDecryptRsa3.10 ApiCryptoProperties3.11 KeyPair3…

一天面了8个Java后端,他们竟然还在背5年前的八股文!

今天面了8个Java候选人,在面试中我发现他们还停留在面试背八股文的阶段,5年前面试背八股文没问题,随着市场竞争越来越激烈,再问普通的Java八股文已经没有意义了,因为考察不出来获选人的真实实力! 现在面试…

VIGOSERVO帝人伺服驱动器维修ARN135-F ARS135-25

帝人VIGOSERVO驱动器维修TEIJIN SEIKI伺服驱动器全系列型号修理。 关于VIGOSERVO伺服驱动器维修的相关内容,可以归纳为以下几个方面: 一、维修概述 VIGOSERVO伺服驱动器作为自动化设备组件,多应用于工业机器人、数控加工等高精度传动系统中…

【大数据】大数据运维方案浅析总结

1. 引言 在大数据时代,如何高效管理和维护大规模数据平台,成为许多企业面临的重要挑战。本文将对市面上一些流行的大数据运维管理方案进行全面分析,包括Cloudera的CDH和CDP、Hortonworks的HDP、Apache的Ambari、国产开源平台Datasophon&#…

docker使用阿里云镜像加速

官方教程 https://help.aliyun.com/zh/acr/user-guide/accelerate-the-pulls-of-docker-official-images 申请地址 https://free.aliyun.com/?searchKey%E9%95%9C%E5%83%8F 阿里云容器镜像服务地址 https://cr.console.aliyun.com/cn-zhangjiakou/instances 展开才能看到

UNI-SOP应用场景(2)- 业务平台集成

前面介绍了项目前期我们前端可以不需要业务平台参与就可以开始开发,这一章我们介绍新业务平台怎么集成到UNI-SOP云统一认证中心。 新建项目引入uni-client在云认证统一管理端新增业务平台在业务平台项目配置在认证中心创建的平台信息接口开发和权限校验 新建项目 打…

浅谈端到端,助力智能驾驶突破OR错误路线

目前端到端自动驾驶的定义可以简单分为狭义端到端和广义端到端。 狭义端到端:传感器数据进入神经 网络处理后,直接输出方向盘、油门、刹车等执行器的控制信号,该模式通过单一神经网络模型实现,是严格意义上的端到端。 广义端到端&…

基于nodejs+vue的外卖管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…

【科普知识】什么是驱控一体化伺服电机?

驱控一体化伺服电机以其高度的集成性、兼容性、便捷性以及卓越的性能表现,成为了现代工业自动化领域的一颗璀璨明珠。对于那些追求高效、精准、智能控制的行业用户而言,它无疑是一种理想的选择。 一、驱控一体化伺服电机是什么 驱控一体化伺服电机&…

代码随想录算法训练营第十一天|150. 逆波兰表达式求值 239. 滑动窗口最大值 347.前 K 个高频元素

150. 逆波兰表达式求值 根据 逆波兰表示法,求表达式的值。 有效的运算符包括 , - , * , / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说&#xff0c…

建筑的抗震等级与建筑资质中哪些项目有关?

在地震多发地带,建筑物的抗震性能是保障人民生命财产安全的关键因素。抗震等级作为建筑设计中的一个重要指标,与建筑资质紧密相关。 建筑的抗震等级与建筑资质中以下项目有关: 1. 工程设计资质:抗震设计是建筑设计的重要组成部分&…

Mysql进阶——1

一.MySQL程序简介 本章介绍 MySQL 命令⾏程序以及在运⾏这些程序时指定选项的⼀般语法。 对常⽤程序进⾏详细的讲解,包括它们的选项。 MySQL安装完成通常会包含如下程序: • Linux系统程序⼀般在 /usr/bin⽬录下,可以通过命令查看&#x…

示例说明:sql语法学习

SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的标准语言。学习SQL可以帮助你有效地查询、插入、更新和删除数据库中的数据。以下是SQL语法的一些基本概念和常用命令: 1. SQL基础语法 SQL关键字&am…

1-carla简介

1 引入 CARLA是一个开源的自动驾驶模拟器。它是从头开始构建的,作为一个模块化和灵活的API,可以解决自动驾驶问题中涉及的一系列任务。“CARLA”的主要目标之一是让自动驾驶研发自主化,成为用户可以轻松使用和定制的工具。为此,模…