用python3写一个简单的文本编辑器吧


title: “TextEditorPython”
date: 2020-11-20T19:31:05+08:00
lastmod: 2020-11-20T19:31:05+08:00
keywords: [‘TextEditor’, ‘Python’, ‘tkinter’]
description: “用python3写一个简单的文本编辑器”
tags: [‘TextEditor’]
categories: [Python]
author: “筱氚”

Intro

用python3写一个简单的文本编辑器吧,参考Create a Simple Python Text Editor!By PumpkinSmasher,原文太久远,不适合py3,下面对py3进行了一丢更改

开发环境

Deepin 20 , python3 3.7.3

效果预览

照片好大。。
在这里插入图片描述

开动啦

安装tkinter

My Os: Deepin 20 , python3 3.7.3
这是我开发环境py3安装tkinter和测试的过程,参考给python安装tkinter模块(及各种问题的解决:如 ModuleNotFoundError: No module named ‘_tkinter’)

$ sudo apt update
$ sudo apt install python3-tk

测试安装是否成功,出现tkinter窗体说明安装成功

$ python3 -m tkinter

显示一个窗口

import tkinter as tk
root = tk.Tk()
root.mainloop()

这个窗口有点小,现在还不能输入文字

添加文本框

import tkinter as tk
root = tk.Tk()
text = tk.Text(root)
text.grid()
root.mainloop()

现在窗口可以编辑文字啦,下面添加保存按钮吧

添加按钮

import tkinter as tk

root = tk.Tk()
text = tk.Text(root)
text.grid()
button = tk.Button(root, text="Save")
button.grid()
root.mainloop()

这个时候按钮还没有添加功能,下面给它添加保存功能吧。

为按钮添加保存功能

import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
text = tk.Text(root)
text.grid()


def savetext():
    global text
    data = text.get("1.0", "end-1c")
    savelocation = filedialog.asksaveasfilename()
    if(savelocation):
        with open(savelocation, 'w+', encoding='utf-8') as f:
            f.write(data)
    else:
        print("empty filepath")


button = tk.Button(root, text="Save", command=savetext)
button.grid()
root.mainloop()

总结

这个文本编辑器功能还有点简陋,没有字体选择呀、打开文件呀。后面有机会再写,后续代码都放在Github

FAQ

  1. sys.python_version - AttributeError: module ‘sys’ has no attribute ‘python_version’

将第一段代码修改为如下

import sys

pv = sys.version[0]
if pv == 2:
    from Tkinter import *
else:
    from tkinter import *
  1. from tkinter import * - ModuleNotFoundError: No module named ‘tkinter’

没有正确安装tkinter模块,请查看安装tkinter部分

References

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值