pyQT中的文本部件及其区别

文章目录

简介

PySide6中提供了丰富的文本部件,包括

文本部件 中文名 需求解析
QLabel 标签 显示一行说明文字、给输入框加标签
QLineEdit 单行编辑框 输入账号、密码、单行搜索词
QPlainTextEdit 多行纯文本编辑器 显示程序运行日志、写代码、大文本
QTextEdit 多行富文本编辑器 编写邮件、需要改变字体颜色/加粗
QTextBrowser 文本浏览器 显示帮助文档、带超链接的只读文本

其中标签和单行编辑框没什么好说的,下面对多行纯文本编辑器、多行富文本编辑器和文本浏览器做一个简单的示例,效果如下

设计

Label和LineEdit就不讲了,两个按钮,名称你分别是【pbTransTextEdit】和【pbTransBrowser】,用于将纯文本转换为富文本和浏览器内容。富文本框的名字是【textEdit】、文本浏览器的名字是【textBrowser】,两个纯文本框的名字分别是【pteForTextEdit】和【pteForBrowser】。

pteForTextEdit中的内容如下

xml 复制代码
<h2 style="color: #2E86C1;">富文本编辑器 (QTextEdit) 演示</h2>
<p>这是一段包含 <b>加粗</b>、<i>斜体</i> 和 <u>下划线</u> 的文本。</p>
<p style="color: red;">这里使用了红色的字体,并且 <span style="background-color: yellow;">带有高亮背景</span>。</p>
<ul>
    <li>无序列表项 1</li>
    <li>无序列表项 2</li>
</ul>
<ol>
    <li>有序列表项 1</li>
    <li>有序列表项 2</li>
</ol>

pteForBrowser中内容如下

html 复制代码
<h2>文本浏览器 (QTextBrowser) 演示</h2>
<p>文本浏览器的核心特点是支持 <b>超链接导航</b>。</p>
<p>
    1. 外部链接:<a href="https://www.qt.io">访问 Qt 官方网站</a><br>
    2. 邮件链接:<a href="mailto:test@example.com">点击发送邮件</a><br>
    3. 内部锚点:<a href="#section_bottom">点击跳转到页面底部</a>
</p>
<hr>
<p style="color: gray;">(请向下滚动查看锚点目标,或者点击上方链接测试)</p>
<br><br><br><br><br><br><br><br><br><br><br><br>
<h3 id="section_bottom" style="color: green;">【锚点目标】你成功跳转到了底部!</h3>

在实际测试中,可以将二者调换,以体会富文本和文本浏览器的区别,即前者只提供文本渲染功能,后者则支持链接操作。当点击文本浏览器中的【点击跳转到页面底部】时,文本的确会调转到底部,但如果将这部分内容转换为富文本,则不会有此表现。

Python代码

Python代码如下,非常简单,只是调用了纯文本输入框的输出纯文本函数【toPlainText】,并调用富文本和文本浏览器中的【setHtml】方法。

python 复制代码
from PyQt6 import uic
from PyQt6.QtWidgets import QApplication, QMainWindow
import sys

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        uic.loadUi('TextTest.ui', self)  # 加载UI文件
        self.pbTransBrowser.clicked.connect(self.pbTransBrowser_click)
        self.pbTransTextEdit.clicked.connect(self.pbTransTextEdit_click)

    def pbTransTextEdit_click(self):
        # 核心逻辑:提取纯文本 -> 渲染为富文本
        html_str = self.pteForTextEdit.toPlainText()
        self.textEdit.setHtml(html_str)

    def pbTransBrowser_click(self):
        # 核心逻辑:提取纯文本 -> 渲染为浏览器视图
        html_str = self.pteForBrowser.toPlainText()
        self.textBrowser.setHtml(html_str)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec())
相关推荐
ShineWinsu3 天前
对于Qt:QProgressBar常见属性的解析
开发语言·c++·qt·进度条·gui·定时器·qprogressbar
ShineWinsu3 天前
对于Qt:QLCDNumber常见属性以及QTimer的解析
服务器·数据库·c++·qt·gui·qtimer·qlcdnumber
ShineWinsu3 天前
对于Qt:QRadioButton常见属性以及QButtonGroup的解析
数据库·c++·qt·microsoft·gui·qradiobutton·qbuttongroup
ShineWinsu4 天前
对于Qt:QLabel常见属性的解析
c++·qt·面试·笔试·gui·标签·qlabel
ShineWinsu5 天前
对于Qt:QCheckBox常见属性的详细解析
c++·qt·面试·笔试·gui·qcheckbox·多选框
ShineWinsu5 天前
对于Qt:QPushButton常见属性的解析
开发语言·c++·qt·api·gui·按钮·qpushbutton
ShineWinsu7 天前
对于Qt:QWidget通用属性的解析—上
数据库·qt·microsoft·面试·gui·属性·qwidget
wuyk5557 天前
PyQt6-第10讲-PDF工具箱
python·microsoft·pdf·pyqt
wuyk5558 天前
PyQt6-第14讲-数据库与Excel双向同步
数据库·python·ui·excel·pyqt
MrWind灬9 天前
我给自己写了个 Kafka 桌面客户端:MrWindKafkaClient
kafka·pyqt