朋友们,大家好,这次再次与作者见面,作者将发表一篇文章,介绍如何使用Python Tkinter创建文本编辑器。Tkinter是一个Python库,在您想要创建应用程序时非常有用。
立即讨论如何制作此文本编辑器应用程序。现在,我们要创建的编辑器具有非常简单的功能,可以编写文本,保存和打开包含文本的文件。作者将在此处使用Pycharm,如果尚未安装Pycharm应用程序,请直接在此网站https://www.jetbrains.com/pycharm/download/#section=windows上安装。
创建的文本编辑器将如下所示:
让我们开始制作应用程序。如果您已经安装了Pycharm IDE,则请朋友先打开它。然后,要创建一个新项目,请单击文件>新建项目,我们将被指示填写项目名称,然后单击创建。
然后它将显示如下:
之后,直接转到new并选择Python file,然后立即填写项目好友的名称。它将显示如下:
首先,我们导入所需的Tkinter类。
from tkinter import *
from tkinter import messagebox
from tkinter.filedialog import asksaveasfilename
from tkinter import filedialog
import os
from tkinter.messagebox import askokcancel
接下来,编写代码以在Tkinter中创建具有Frame类继承的SimpleEditor 类。是一个容器,用作放置控件以及标签文本或按钮的地方。为什么需要框架?因为我们将能够设置具有所需大小的应用程序窗口,所以我们还要放置一个已制作的标签,例如Frame显示:Frame
class SimpleEditor(Frame):
def __init__(self, parent=None, file=None):
Frame.__init__(self, parent)
self.frm = Frame(parent)
self.frm.pack(fill=X)
self.layoutKolom = Frame(root)
self.buatNamefile()
parent.title("Text editor")
self.buatTombol()
self.kolomTeksUtama()
self.indeks = 1.0
self.path = ''
完成后,为创建打开,保存和退出按钮的方法编写以下代码。
def buatTombol(self):
Button(self.frm, text='Open',relief='flat',command=self.openFile).pack(side=LEFT)
Button(self.frm, text='Save',relief='flat',command=self.perintahSimpan).pack(side=LEFT)
Button(self.frm, text='Exit',relief='flat',command=self.perintahKeluar).pack(side=LEFT)
为什么必须使用self.frm?目标是创建框架,例如按钮或工具栏的位置,因为此处的程序将在工具栏中具有打开,保存和退出按钮。然后relief='flat'使按钮打开,保存并退出平面按钮。
command=self.openFile 用于调用函数并执行openFile,Save和Exit命令。有什么功能.pack(side=LEFT)?目的是通过将布局调整到左侧来创建布局。将下面的源代码编写为主要文本列方法和滚动条。
def kolomTeksUtama(self):
scroll = Scrollbar(self)
kolomTeks = Text(self, relief=SUNKEN)
scroll.config(command=kolomTeks.yview)
kolomTeks.config(yscrollcommand=scroll.set)
scroll.pack(side=RIGHT, fill=Y)
kolomTeks.pack(side=LEFT, expand=YES, fill=BOTH)
self.kolomTeks = kolomTeks
self.pack(expand=YES, fill=BOTH)
该功能kolomTeksUtama用于容纳由朋友创建的所有程序文本,可以在“第一文本”列创建的显示中看到,如下所示:
然后对于保存文件的命令,输入如下源代码:
def perintahSimpan(self):
print(self.path)
if self.path:
alltext = self.gettext()
open(self.path, 'w').write(alltext)
messagebox.showinfo('Berhasil', 'Selamat File telah tersimpan ! ')
else:
tipeFile = [('Text file', '*.txt'),('Python file', '*asdf.py'),('All files', '.*')]
filename = asksaveasfilename(filetypes=(tipeFile),initialfile=self.kolomJudul.get())
if filename:
alltext = self.gettext()
open(filename, 'w').write(alltext)
self.path = filename
如果要退出文本编辑器,请为exit命令编写以下源代码。该命令Frame.quit(self)用于关闭Tkinter窗口。
def perintahKeluar(self):
ans = askokcancel('Exit', "anda yakin ingin keluar?")
if ans: Frame.quit(self)
完成后,现在在下面编写源代码,以便您可以读取文件的内容并将其显示在应用程序窗口中。
def settext(self, text='', file=None):
if file:
text = open(file, 'r').read()
self.kolomTeks.delete('1.0', END)
self.kolomTeks.insert('1.0', text)
self.kolomTeks.mark_set(INSERT, '1.0')
self.kolomTeks.focus()
def gettext(self):
return self.kolomTeks.get('1.0', END+'-1c')
编写源代码以制作标签“ File name:”,其功能是能够读取先前打开的文件的名称并显示它。
def buatNamefile(self):
self.layoutKolom.pack(fill=BOTH, expand=1, padx=17, pady=5)
judul = Label(self.layoutKolom, text="Nama file : ")
judul.pack(side="left")
self.kolomJudul = Entry(self.layoutKolom)
self.kolomJudul.pack(side="left")
接下来记下以下源代码,以便你可以打开文件:
def openFile(self):
extensiFile = [ ('All files', '*'), ('Text files', '*.txt'),('Python files', '*.py')]
open = filedialog.askopenfilename(filetypes = extensiFile)
if open != '':
text = self.readFile(open)
if text:
self.path = open
nama = os.path.basename(open)
self.kolomJudul.delete(0, END)
self.kolomJudul.insert(END, nama)
self.kolomTeks.delete('0.1',END)
self.kolomTeks.insert(END, text)
要打开文件,读取文本文件并还原文本文件,需要编写以下代码:
def readFile(self, filename):
try:
f = open(filename, "r")
text = f.read()
return text
except:
messagebox.showerror("Error!!")
return None
最后一步,编写以下代码以显示Tkinter应用程序。该mainloop()功能是为了防止应用程序窗口从马上关闭。
root = Tk()
SimpleEditor(root)
mainloop()
如果运行程序,则输出将如下所示
现在,如果单击打开,则保存并退出,如下所示:
参考:
https://www.youtube.com/watch?v=7PGFin30c4o
https://www.youtube.com/watch?v=D24Vx3_IM8U
[ http://repository.unpas.ac.id/28589/9/_III%20-%20BAB%20III%20EXPLORASI.pdf](http://repository.unpas.ac.id/28589/9/_III - BAB III EXPLORATION.pdf)
https://www.tutorialspoint.com/python/tk_relief.htm