纯文本编辑器QPlainTextEdit功能详解,PyQt(Python+Qt)学习随笔

本文介绍了QPlainTextEdit,一个用于处理大文档的纯文本编辑器部件,支持快速响应用户输入。它使用段落处理文本,并提供丰富的属性,如tabChangesFocus、documentTitle和undoRedoEnabled等。此外,还讨论了QPlainTextEdit的重要方法,如appendHtml、appendPlainText和find,以及与其相关的信号。文章适用于PyQt和Python+Qt的学习者。
摘要由CSDN通过智能技术生成

一、概述
QPlainTextEdit是用于纯文本的一个高级文档编辑器部件,为支持处理大文档和快速响应用户输入进行了特定优化。QPlainTextEdit处理文本是按段和字符,段落是一个格式化的字符串,界面换行会以适应编辑部件的宽度方式以整词词为单位进行。默认情况下,纯文本中的一个换行符表示一个段落。文档由零个或多个段落组成。段落中的每个字符都有自己的属性,例如字体和颜色。

PyQt的文本处理提供了一系列丰富的类,包括QTextDocument、QTextCharFormat、QTextCursor、QTextBlock、QTextList、QTextFrame、QTextTable、QTextBlockFormat、QTextListFormat、QTextFrameFormat、QTextTableFormat等,如果要介绍清楚需要花比较多的时间,因此本部分不展开进行介绍。推荐大家按如下两篇文章了解:

QTextEdit和QTextDocument
Qt之文本编辑
二、属性
文本编辑QPlainTextEdit在Designer中可以设置的属性如下:

可以看到QPlainTextEdit的属性与QTextEdit的属性很多是相同的。

tabChangesFocus:tabChangesFocus属性控制tab键是否更改焦点还是接受为输入。在某些情况下,文本编辑不应允许用户使用Tab键输入制表符或更改缩进,因为这样会打断焦点链,默认值为False,可通过tabChangesFocus()和setTabChangesFocus()方法来访问
documentTitle:documentTitle属性保存文档标题。默认情况下,对于新创建的空文档,此属性包含空字符串。可以通过方法documentTitle()、setDocumentTitle()来访问。
undoRedoEnabled:undoRedoEnabled属性用于控制是否启用undo和redo,默认是启用,可以通过方法isUndoRedoEnabled()、setUndoRedoEnabled()来访问
lineWrapMode:lineWrapMode属性用于控制换行模式,其类型为枚举类型QPlainTextEdit.LineWrapMode,缺省值为WidgetWidth,表示以词为单位在编辑器右边换行,换行出现在空白处,保持整个单词的完整性。可以调用方法lineWrapMode()、setLineWrapMode()来访问该属性。如果不以词为单位来换行,则需要调用setWordWrapMode来改变词换行的策略。如果设置换行模式为NoWrap 则不会换行。
readOnly:readOnly 用于控制编辑器内是否只读,默认为False,可以通过isReadOnly()、setReadOnly()进行访问
plainText:plainText属性为编辑器中的文本内容,可以通过方法toPlainText()、setPlainText()来进行属性访问,当通过setPlainText来改变文本内容时,也会触发textChanged()信号
overwriteMode:overwriteMode属性用于控制用户输入文本是否替换现有文本,如果为True,则输入字符从当前光标位置开始逐一替换当前的字符,为False则在光标处插入输入字符。缺省值为False,可以通过方法overwriteMode()、setOverwriteMode()进行访问
tabStopWidth:tabStopWidth属性用于控制编辑器中输入tab键时移动的像素数,默认值为80像素,可以通过方法tabStopWidth()、setTabStopWidth()来访问,不过该属性在Qt 5.10以后版本中被下面的tabStopDistance所替代,在5.13的文档中就没有该属性,但实际上类方法还是支持的,tabStopWidth与tabStopDistance的唯一区别是前者为整型、后者为浮点数,更精确,在Designer中二者的值也是联动的,tabStopWidth改变直接修改tabStopDistance为tabStopWidth的值,如果tabStopDistance值改变,则将tabStopDistance四舍五入后的值作为tabStopWidth的值,最终生成的代码tabStopDistance、tabStopWidth都会设置,这个与QTextEdit不同
cursorWidth:cursorWidth用于设置编辑器光标的像素为单位的宽度,缺省值为1,可通过方法cursorWidth() 、setCursorWidth()来访问
textInteractionFlags:textInteractionFlags属性用于控制编辑器怎么响应用户的输入,其类型为Qt.TextInteractionFlags,用于控制编辑器是否可键盘或鼠标选择文本、是否可编辑、链接是否鼠标或键盘访问等,缺省值依赖于编辑器是否只读,可通过textInteractionFlags()、setTextInteractionFlags()方法访问,具体枚举类型值参考官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值