1、介绍:
环境:python3.8-3.10
导入包:win32api,win32con,tkinter,time,easygui,os,pynput,threading
废话不多说,先上源代码:
import win32api,win32con
import tkinter
import tkinter as tk
import tkinter.filedialog
import tkinter.messagebox
import tkinter.scrolledtext
import tkinter.colorchooser
import tkinter.simpledialog
import time
import easygui as g
import tkinter
import tkinter.messagebox
import os
#import virtkey
from pynput.keyboard import Key, Controller
from tkinter import *
from tkinter.scrolledtext import ScrolledText
from tkinter import messagebox
from threading import Thread
from tkinter.ttk import *
# ----------------------------------------一、创建窗口-------------------------------------------------
filename = "" # 定义空文件名
win = tk.Tk()
win.title('WSL文件编辑器')
win["height"] = 400
win["width"] = 600
# ----------------------------------------特殊---------------------------------------------------------
def new():
#os.startfile(".\WSL文件编辑器.py")
os.startfile(os.path.basename(__file__))
def quit_exit():
global filename
if textChanged.get():
yesno = tk.messagebox.askyesno(
title="提醒", message="你想保存吗?") # 询问框
if yesno == tkinter.YES:
if not filename:
SaveAs()
else:
Save()
else:
exit()
#win.destroy()
else:
exit()
#win.destroy()
exit()
#win.destroy()
def popup(event):
right.post(event.x_root,event.y_root)
# ---------------------------------------二、功能定义区---------------------------------------------
mylist=[]
# -----------------------------------------1.菜单栏 File-----------------------------------------------------------
textChanged = tk.IntVar(value=0) # 字符串计数器
# 1.打开
def Open():
global filename
# 1.获取字符,是否保存原来的文档
if textChanged.get():
yesno = tk.messagebox.askyesno(
title="提醒", message="你想保存吗?") # 询问框
if yesno == tkinter.YES:
Save()
#filename = tkinter.filedialog.askopenfilename(
# title="Open file", filetypes=[("Text files", "*.txt")]) # 打开路径框
#filename = g.fileopenbox(default="*.txt")
# 2.打开新的文档
#filename = g.fileopenbox("打开","","*.txt")
filename = tkinter.filedialog.askopenfilename(
title="打开", filetypes=[("Text files", "*.txt")]) # 打开路径框
if filename:
mylist.append(filename)
(filepath,tempfilename) = os.path.split(filename)
(file_name,extension) = os.path.splitext(tempfilename)
if filename!="":
win.title('WSL文件编辑器-'+file_name)
else:
win.title('WSL文件编辑器')
txtContent.delete(0.0, tk.END) # 删除原来的文本
#filename = tkinter.filedialog.askopenfilename(
# title="Open file", filetypes=[("Text files", "*.txt")]) # 打开路径框
#filename = g.fileopenbox(default="*.txt")
fp = open(filename, "rb") # 读取文本
txtContent.insert(tkinter.INSERT, "".join(
fp.read().decode('GBK'))) # 解码插入到文本编辑器
fp.close() # 关闭指针
textChanged.set(0) # 字符串置0
# 2.保存
def Save():
global filename
if not filename:
SaveAs()
elif textChanged.get():
fp = open(filename, "w") # 创建文本
fp.write(txtContent.get(0.0, tkinter.END)) # 将文本框的内容导入文件
fp.close() # 关闭
#win32api.MessageBox(0, "保存完毕", "WSL文件编辑器·保存",win32con.MB_OK)
textChanged.set(0) # 计数器置0