【PyQt小知识 - 2】:QTextEdit内容的更新和获取、隐藏或显示滚动条、光标插入文本、文本自适应移动

文章目录

  • QTextEdit
    • 更新和获取内容
    • 隐藏或显示滚动条
    • 光标插入文本
    • 文本自适应移动

QTextEdit

更新和获取内容

更新:QTextEdit().setText(text)QTextEdit().setPlainText(text)
获取:QTextEdit().toPlainText()

setText()setPlainText()的区别:

  • setText()方法可以接受HTML格式的文本,并且会解析并显示HTML标签。这意味着可以在QTextEdit中使用富文本格式,例如加粗,斜体,字体颜色等。示例代码如下:
text_edit.setText("Bold Text")

上述代码将在QTextEdit中显示为粗体文本。

  • setPlainText()方法仅接受纯文本,它不会解析或显示HTML标签。这意味着所有的HTML标签都会被当做纯文本显示。示例代码如下:
text_edit.setPlainText("Bold Text")

上述代码将在QTextEdit中直接显示Bold Text的纯文本。

更新和获取内容示例代码:

from PyQt5.QtWidgets import *
import sys

class Window(QMainWindow):
    def __init__(self):
        super().__init__()

        # 窗口设置
        self.resize(300, 300)

        self.setup_ui()

    def setup_ui(self):
        textEdit = QTextEdit(self)
        textEdit.resize(100, 100)
        textEdit.setText('12345')

        button1 = QPushButton('更新', self)
        button1.move(50, 150)
        button1.clicked.connect(lambda: textEdit.setText('更新内容'))

        button2 = QPushButton('获取', self)
        button2.move(50, 200)
        button2.clicked.connect(lambda: print(textEdit.toPlainText()))


if __name__ == '__main__':

    app = QApplication(sys.argv)

    window = Window()
    window.show()

    sys.exit(app.exec_())

运行结果:

【PyQt小知识 - 2】:QTextEdit内容的更新和获取、隐藏或显示滚动条、光标插入文本、文本自适应移动_第1张图片
在这里插入图片描述

隐藏或显示滚动条

要隐藏或显示QTextEdit的垂直和水平滚动条,可以使用setVerticalScrollBarPolicy()setHorizontalScrollBarPolicy()方法。

以下是示例代码:

隐藏垂直滚动条:

from PyQt.QtCore import Qt
textEdit.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)

显示垂直滚动条:

from PyQt.QtCore import Qt
textEdit.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)

隐藏水平滚动条:

from PyQt.QtCore import Qt
textEdit.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)

显示水平滚动条:

from PyQt.QtCore import Qt
textEdit.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded)

光标插入文本

from PyQt5.QtWidgets import *
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QTextCharFormat, QFont

class Window(QMainWindow):
    def __init__(self):
        super().__init__()

        # 窗口设置
        self.resize(300, 300)

        self.setup_ui()

    def setup_ui(self):
        self.textEdit = QTextEdit(self)
        self.textEdit.resize(100, 100)

        self.cursor = self.textEdit.textCursor()     # 获取光标

        button1 = QPushButton('插入', self)
        button1.move(50, 150)
        button1.clicked.connect(self.insertNewText)

    # 光标位置插入内容
    def insertNewText(self):
        format = QTextCharFormat()  # 实现局部文本格式特征的设置
        format.setForeground(Qt.red)    # 设置字体颜色
        format.setFont(QFont('宋体', 12))

        self.cursor.insertText('1\n', format)

if __name__ == '__main__':

    app = QApplication(sys.argv)

    window = Window()
    window.show()

    sys.exit(app.exec_())

运行结果:

【PyQt小知识 - 2】:QTextEdit内容的更新和获取、隐藏或显示滚动条、光标插入文本、文本自适应移动_第2张图片

文本自适应移动

文本自适应移动,即在每次插入内容后,显示光标所在的位置即可。
QTextEdit().ensureCursorVisible()

以以上代码为例

    # 光标位置插入内容
    def insertNewText(self):
        format = QTextCharFormat()  # 实现局部文本格式特征的设置
        format.setForeground(Qt.red)    # 设置字体颜色
        format.setFont(QFont('宋体', 12))

        self.cursor.insertText('1\n', format)
        self.textEdit.ensureCursorVisible()     # 文本自适应移动

运行结果:

【PyQt小知识 - 2】:QTextEdit内容的更新和获取、隐藏或显示滚动条、光标插入文本、文本自适应移动_第3张图片

观察“光标插入文本”的运行结果中文本框的滚动条和本次运行结果中的滚动条:

【PyQt小知识 - 2】:QTextEdit内容的更新和获取、隐藏或显示滚动条、光标插入文本、文本自适应移动_第4张图片

你可能感兴趣的:(PyQt小知识,pyqt)