700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 文本编辑器查看 cprintf颜色_实战PyQt5: 028-纯文本编辑控件QPlainTextEdit

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

时间:2020-02-28 00:33:16

相关推荐

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

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类继承关系:

测试QPlainTextEdit

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

importsys,osfromPyQt5importQtCore,QtGui,QtWidgets,uicfromPyQt5.QtWidgetsimport(QApplication,QWidget,QPlainTextEdit,QToolButton,QStyle,QMessageBox,QFileDialog)classDemoPlainTextEdit(QWidget):def__init__(self,parent=None):super(DemoPlainTextEdit,self).__init__(parent)self.path=Noneuic.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)defmsgCritical(self,strInfo):dlg=QMessageBox(self)dlg.setIcon(QMessageBox.Critical)dlg.setText(strInfo)dlg.show()defonFileNew(self):self.txtEdit.clear()defonFileOpen(self):path,_=QFileDialog.getOpenFileName(self,'打开文件','','文本文件(*.txt)')ifpath:try:withopen(path,'rU')asf:text=f.read()exceptExceptionase:self.msgCritical(str(e))else:self.path=pathself.txtEdit.setPlainText(text)defonSaveFile(self):ifself.pathisNone:returnself.onSaveFileAs()self._saveToPath(self.path)defonSaveFileAs(self):path,_=QFileDialog.getSaveFileName(self,'保存文件','','文本文件(*.txt)')ifnotpath:returnself._saveToPath(path)def_saveToPath(self,path):text=self.txtEdit.toPlainText()try:withopen(path,'w')asf:f.write(text)exceptExceptionase:self.msgCritical(str(e))else:self.path=pathif__name__=='__main__':app=QApplication(sys.argv)window=DemoPlainTextEdit()window.show()sys.exit(app.exec())

运行结果如图:

测试QPlainTextEdit

本文知识点

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。