pyqt5-QPlainTextEdit

发布时间 2023-04-16 23:51:11作者: 挖洞404

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]