文本编辑器查看 cprintf颜色_实战PyQt5: 028-纯文本编辑控件QPlainTextEdit

0621ddd0ad3ea1de8c065ce68e8c504b.png

QPlainTextEdit简介

QPlainTextEdit小部件是一个用于编辑和显示纯文本控件,QPlainTextEdit控件与QTextEdit控件使用了相同的技术和概念,但是它为纯文本处理提供了优化。QPlainTextEdit是一个支持纯文本的高级查看器/编辑器,可以处理大型文档并对用户输入做出快速响应。

QPlainTextEdit支持文本段落,在默认情况下,一个换行符表示一个段落,文档可以一个或者多个段落组成,且段落中的每个字符都可以有其自己的属性,例如有自己的字体和颜色。

QPlainTextEdit常用作文本显示器或文本编辑器。

QPlaintTextEdit常用方法:

  • setPlainText(): 设置多行文本框的内容;
  • insertPlainText(): 插入普通文本;
  • appendPlainText(): 添加普通文本;
  • appendHtml(): 添加HTML文本内容;
  • setReadOnly(): 设置成只读模式;
  • isReadOnly(): 是否是只读模式;
  • setLineWrapMode():设置换行模式,取值为(QPlainTextEdit.NoWrap:不自动换行(缺省值),QPlainTextEdit.WidgetWidth: 根据文本框的宽度自动换行.);
  • lineWrapMode(): 换行模式

QPlaintTextEdit中的常用信号:

  • textChanged: 文本内容发生改变时触发;
  • selectionChanged:选中内容发生改变时触发;
  • cursorPositionChanged: 光标位置发生改变触发;
  • copyAvailable:复制可用时触发
  • redoAvailable: 重做可用触发
  • undoAvailable: 撤销可用触发

QPlainTextEdit是一个功能强大的文本编辑器控件,有兴趣的童鞋可进一步研究。

QPlainTextEdit类继承关系:

ee854511388dccedad7e0c7d994047fe.png

测试QPlainTextEdit

测试程序实现简单的文本编辑器,可以新建,打开一个文本文件,然后进行编辑并保存。使用Qt Designer生成ui文件. 然后在代码中是有uic直接调用布局文件。创建文件qplaintextedit.py, 代码如下:

import sys,osfrom PyQt5 import QtCore, QtGui, QtWidgets, uicfrom PyQt5.QtWidgets import (QApplication, QWidget, QPlainTextEdit, QToolButton, QStyle, QMessageBox, QFileDialog) class DemoPlainTextEdit(QWidget):    def __init__(self, parent=None):        super(DemoPlainTextEdit, self).__init__(parent)                self.path = None                uic.loadUi(os.path.dirname(__file__) + '/textedit.ui', self)                self.btnNewFile.setIcon(QApplication.style().standardIcon(QStyle.SP_FileIcon))        self.btnNewFile.clicked.connect(self.onFileNew)        self.btnOpenFile.setIcon(QApplication.style().standardIcon(QStyle.SP_DialogOpenButton))        self.btnOpenFile.clicked.connect(self.onFileOpen)        self.btnSaveFile.setIcon(QApplication.style().standardIcon(QStyle.SP_DialogSaveButton))        self.btnSaveFile.clicked.connect(self.onSaveFile)        self.btnSaveFileAs.setIcon(QApplication.style().standardIcon(QStyle.SP_DialogSaveButton))        self.btnSaveFileAs.clicked.connect(self.onSaveFileAs)            def msgCritical(self, strInfo):        dlg = QMessageBox(self)        dlg.setIcon(QMessageBox.Critical)        dlg.setText(strInfo)        dlg.show()        def onFileNew(self):        self.txtEdit.clear()            def onFileOpen(self):        path, _ = QFileDialog.getOpenFileName(self, '打开文件', '', '文本文件 (*.txt)')                if path:            try:                with open(path, 'rU') as f:                    text = f.read()            except Exception as e:                self.msgCritical(str(e))            else:                self.path = path                self.txtEdit.setPlainText(text)                    def onSaveFile(self):        if self.path is None:            return self.onSaveFileAs()        self._saveToPath(self.path)            def onSaveFileAs(self):        path,_ = QFileDialog.getSaveFileName(self, '保存文件', '', '文本文件 (*.txt)')        if not path:            return        self._saveToPath(path)            def _saveToPath(self, path):        text = self.txtEdit.toPlainText()        try:            with open(path, 'w') as f:                f.write(text)        except Exception as e:            self.msgCritical(str(e))        else:            self.path = path               if __name__ == '__main__':    app = QApplication(sys.argv)    window = DemoPlainTextEdit()    window.show()    sys.exit(app.exec())

运行结果如图:

7d3b43d4584481f90a757fb212d86458.gif

测试QPlainTextEdit

本文知识点

  • QPlainTextEdit的基本功能;
  • 使用uic在代码中导入ui文件;
  • 使用QFileDialog打开文件对话框;
  • 文本文件的读写操作。

喜欢本文内容就收藏,点赞,评论,关注和转发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值