朋友们,大家好,这次再次与作者见面,作者将发表一篇文章,介绍如何使用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 messageboxfrom tkinter.filedialog   import asksaveasfilenamefrom tkinter import filedialogimport osfrom 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=7PGFin30c4ohttps://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

Linuxqt制作文本编辑器_Python实操!速收藏!学习使用Python创建文本编辑器应用程序相关推荐

  1. 计算机培训微课设计与实现,微课制作相关软件的实操培训

    为全面提升我校教师信息技术应用能力,促进教师转变教育教学方式,推动广大教师在课堂教学和日常工作中有效应用信息技术,实现信息技术与教育教学深度融合.5月9日下午,教师发展中心在计算机基础实验教学中心组织 ...

  2. 【STM32学习】——USART串口数据包HEX/文本数据包收发流程串口收发HEX/文本数据包实操

    文章目录 前言 一.数据包格式(江科大规定) 1.HEX数据包 2.文本数据包 3.两者对比 二.数据包收发流程 1.HEX数据包接收(只演示固定包长) 2.文本数据包接收(只演示可变包长) 三.实操 ...

  3. 【Linux】文本处理工具实操:cut、awt

    cut cut - 在文件的每一行中提取片断 说明:默认分隔符是制表符 cut [选项参数] filename-f 提取通过分割符分割之后的第几列,与-d一起使用-d 分隔符,按照指定分隔符分割列,默 ...

  4. 「建模学习」3dmax人物模型制作全过程分享,案例实操,建模学习教程

    先看成图 大家好! 今天大家分享3dmax创建游戏角色的工作流程. 开始吧! 收集参考 这是我所有项目的一个非常重要的一步,因为这是我决定角色风格的方式. 我喜欢搜索不同种类的参考文献,如材料,服装和 ...

  5. python自动化框架测试实操_自动化框架之 python+selenium+pytest

    1.概述 selenium: 基于JavaScript代码库的自动化测试框架,通过脚本语言,模拟用户行为操作,最接近用户真实场景,实现对web自动测试. Selenium,是目前的最火爆企业最主流的w ...

  6. bert使用做文本分类_使用BERT进行深度学习的多类文本分类

    bert使用做文本分类 Most of the researchers submit their research papers to academic conference because its ...

  7. python 文字识别 准确率_关于OCR图片文本检测、推荐一个 基于深度学习的Python 库!...

    大家好,我是 zeroing~ 1,前言 之前谈到图片文本 OCR 识别时,写过一篇文章介绍了一个 Python 包 pytesseract ,具体内容可参考 介绍一个Python 包 ,几行代码可实 ...

  8. python制作ai小说网_【案例分享】使用Python创建AI比你想象的轻松

    您可能对AI领域,主要开发阶段,成就,结果和产品使用感兴趣.有数百个免费源和教程描述使用Python的AI.但是,没有必要浪费你的时间看他们.这里是一个详细的指南,你需要知道在使用Python构建人工 ...

  9. django开源电子文档管理系统_Python实操技术分享:Django文件管理系统,Apple的学习思路...

    一.客户端产品要求 有一个更新状态按钮,点击更新数据后会弹出结果页面 作用是检查本次读取的文档信息与数据库中文档数据的区别.同时对数据库进行对应的新增和删除操作.然后把最终的数据库信息按行显示出来,包 ...

最新文章

  1. 传输文件过程中遇到异常被中断
  2. Fiddler+willow使用指南
  3. VMware下Linux虚拟机安装及没有内网ip的三种解决方案
  4. .NET Core 返回结果统一封装
  5. xamarin android 标签,安卓端Tabbedpage调整在底部位置和标签及取消Android API28 以下的点击特效—-xamarin.forms学习笔记(一)...
  6. pcl里面使用KdTree来搜索
  7. 转 php 观察者模式
  8. python——import导入模
  9. 【转】Java学习---内存溢出的排查经历
  10. pptx库ppt演示 python_详解 Python 操作 PPT 的各种骚操作!
  11. PG Doc:17章1-3小节翻译
  12. cmd通过安装choco 安装 helm
  13. onnx-modifier:ONNX可视化编辑
  14. 十月英语——坚持的力量
  15. 【mysql】ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry ’1′ for key ‘PR
  16. PTA实验题:6-2 Tree类的构造函数和成员函数 (10 分)
  17. 电磁辐射安全标准及检测方法
  18. 男主计算机系大神甜宠小说,《蜜汁炖鱿鱼》后,又一电竞甜宠小说翻拍,男主帅气颜值直击心脏...
  19. 基于webmagic的种子网站爬取
  20. 今年看过的最好的动画片 无敌破坏王

热门文章

  1. 浅谈win10修复系统文件的方法
  2. constrain用法java_Java中的@UniqueConstraint注释
  3. linux上mysql定时备份数据库数据_Linux下如何实现MySQL数据库每天定时自动备份
  4. java jdbc mysql util_Java,Scala:JDBCUtil,MySqlUtil,PhoenixJDBC
  5. android os自动联网,联网设置指南
  6. 模块化无人机,不仅配置高,还颜值爆表
  7. poj1066--Treasure Hunt(规范相交)
  8. 苍溪实验中学计算机等级考试,苍溪实验中学2021年招生录取分数线
  9. oracle 0.1变.1,Oracle在12.1.0.2开始改变了补丁策略
  10. mysql 查询条数优化_MySQL优化总结-查询总条数