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
- 1
- 2
测试安装是否成功,出现tkinter窗体说明安装成功
$ python3 -m tkinter
- 1
显示一个窗口
import tkinter as tk
root = tk.Tk()
root.mainloop()
- 1
- 2
- 3
这个窗口有点小,现在还不能输入文字
添加文本框
import tkinter as tk
root = tk.Tk()
text = tk.Text(root)
text.grid()
root.mainloop()
- 1
- 2
- 3
- 4
- 5
现在窗口可以编辑文字啦,下面添加保存按钮吧
添加按钮
import tkinter as tk
root = tk.Tk()
text = tk.Text(root)
text.grid()
button = tk.Button(root, text="Save")
button.grid()
root.mainloop()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
这个时候按钮还没有添加功能,下面给它添加保存功能吧。
为按钮添加保存功能
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()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
总结
这个文本编辑器功能还有点简陋,没有字体选择呀、打开文件呀。后面有机会再写,后续代码都放在Github
FAQ
- 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
- 2
- 3
- 4
- 5
- 6
- 7
- from tkinter import * – ModuleNotFoundError: No module named ‘tkinter’
没有正确安装tkinter模块,请查看安装tkinter部分
References
- Create a Simple Python Text Editor!By PumpkinSmasher
- tkinter — Python interface to Tcl/Tk¶
- 给python安装tkinter模块(及各种问题的解决:如 ModuleNotFoundError: No module named ‘_tkinter’)
- AttributeError: module ‘tkinter’ has no attribute ‘filedialog’的解决之道