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())
相关推荐
典典分享指南14 小时前
Excel SUMIFS 跨表汇总实战:多表条件求和的完整指南
django·flask·numpy·pyqt·fastapi
狮子雨恋4 天前
【无标题】
pyqt
微小冷6 天前
pyqt+matplotlib多进程图像刷新
pyqt·matplotlib·进程通信·多进程·queue·process
千里码aicood6 天前
PyQt基于卷积神经网络的智慧校园的设计与实现
人工智能·cnn·pyqt
千里码aicood6 天前
基于PyQt心理咨询机器人智能系统的设计与实现
机器人·pyqt
典典分享指南7 天前
Windows 自动化踩坑实录
python·intellij-idea·pyqt·emacs·visual studio
深蓝海拓9 天前
基于QtPy (PySide6) 的PLC-HMI工程实战记录(五)为当前动作画面的信号连接变量
网络·笔记·python·学习·pyqt
智购科技自动售卖机厂家12 天前
2026自动售货机OTA升级系统设计:从全量升级到差分升级的带宽优化工程实践~YH
大数据·人工智能·numpy·pyqt·fastapi
buhuizhiyuci12 天前
【QT-百日筑基篇】修真世界摸爬滚打多年,终于黄天不负有心人,突破炼器中期——常用控件QWight的属性
开发语言·c++·qt·gui·图形化
【赫兹威客】浩哥12 天前
【无标题】
python·spring·django·pyqt