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

QTextEdit

更新和获取内容

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

setText()setPlainText()的区别:

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

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

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

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

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

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_())

运行结果:

在这里插入图片描述
在这里插入图片描述

隐藏或显示滚动条

要隐藏或显示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_())

运行结果:

在这里插入图片描述

文本自适应移动

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

以以上代码为例

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

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

运行结果:

在这里插入图片描述

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

在这里插入图片描述

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

街 三 仔

你的鼓励是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值