1、介绍
这是pyqt的纯文本多行输入组件。
2、类和初始化
class QPlainTextEdit(QAbstractScrollArea):
"""
QPlainTextEdit(parent: QWidget = None)
QPlainTextEdit(str, parent: QWidget = None)
"""
def __init__(self, *__args):
pass
- 继承关系:QPlainTextEdit->QAbstractScrollArea->QFrame->QWidget
3、常用属性
NoWrap = 0
WidgetWidth = 1
4、方法
(1)setPlainText
- 设置输入文本,即相当于用户直接输入,参数类型str
(2)toPlainText
- 获取输入文本,返回类型str
(3)insertPlainText
- 在光标处插入文本,参数类型str
- 插入内容在光标之前
(4)appendPlainText
- 拼接纯文本,参数类型为str
- 如果此时整体文本为空字符串,直接在首行输入参数。如果不为空字符串,则在整体文本的末尾,先换行再追加参数指定的文本。
(5)appendHtml
- 拼接html代码的文本,参数是str类型
- 参数可以是包含html元素,组件会以html样式进行显示。但是并不会执行,比如a超链接,会显示为其html样式,但是不会点击打开地址。
- 参数中可以包含一个或多个html元素的代码,也可以包含非html代码。即不是必须以树的形式设置,比如”<span style=color:red>样式</span>abc”
- 需要注意,使用appendHtml方法,作为参数的文本会按照html解析多个连续空白符为一个空格,即使不是html代码部分的文本。解决办法是对整体添加pre标签
- toPlainText获取纯文本,是不包含html代码的,即只获取显示的字符。
- 和appendPlainText类似,如果此时整体文本为空字符串,直接在首行输入参数。如果不为空字符串,则在整体文本的末尾,先换行再追加参数指定的文本。
s = """abc d
d<span style=color:red>fd
ff
</span>"""
appendHtml("<pre>"+s+"</pre>")
(6)setPlaceholderText
- 设置占位提示文本,参数类型是str
(7)placeholderText
- 获取占位提示文本,返回类型str
(8)setReadOnly
- 设置是否只读,参数类型bool
(9)isReadOnly
- 获取是否只读,返回类型bool
(10)clear
- 清除所有文本
(11)paste
- 在光标处粘贴剪切板内容
(12)copy
- 复制选中内容到剪切板,如果没有选中,则不进行任何操作
(13)cut
- 剪切选中内容到剪切板,如果没有选中,则不进行任何操作
(14)selectAll
- 选中全部文本
(15)setLineWrapMode
- 设置换行模式
(16)lineWrapMode
- 获取换行模式,默认是为1,表示单词需要完整的在一行,如果末尾遇到长单词,会换行输出。也可以使用QPlainTextEdit.WidgetWidth作为值设置
- 设置为0,会默认不进行换行,输入时增加水平的滚动条,可以连续输入,直到输入换行,enter键。也可以使用QPlainTextEdit.NoWrap作为值设置
(17)blockCount
- 返回文本的文本快数,也可以说是段落数,根据换行符划分,int类型
- 最小为1。即空文本时或者只有首行时,都是为1
(18)setMaximumBlockCount
- 设置最大的文本段落数,参数类型为int
- 如果设置为n,则整体文本只能最多有n-1个换行符
- 连续输入时,有多个换行符,如果超过指定的范围,那么文本输入框会保留后面的最大允许的段落,前面的段落会被删除
(19)maximumBlockCount
- 获取允许的最大的文本段落数,返回类型为int。
- 默认是为0,表示无穷大
(20)document
- 返回一个QTextDocument类型对象,可以进行操作
(21)setTextCursor
- 设置文本光标,实际可以实现跳转到指定光标处,参数为QTextCursor类型
5、事件
blockCountChanged(self, int) [signal]
cursorPositionChanged(self) [signal]
selectionChanged(self) [signal]
textChanged(self) [signal]
标签:pyqt5,类型,html,参数,str,QPlainTextEdit,文本
From: https://www.cnblogs.com/wd404/p/17324474.html