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())
相关推荐
线上放牧人4 天前
Windows删除图标缓存
windows·python·pyqt
典典分享指南6 天前
用飞书 Wiki 搭内容作战室:从零搭建团队内容协作中枢
django·flask·numpy·pyqt
千里码aicood7 天前
pyqt-基于Qt的公共卫生间管理系统的设计与实现
pyqt
千里码aicood8 天前
pyqt基于pytorch的人脸交换系统设计(opencv)
人工智能·pyqt
楚莫识11 天前
Qt show()、raise()、activateWindow() 调用顺序区别
qt·pyqt
小灰灰搞电子16 天前
PyQt 实现蜂巢菜单源码分享
pyqt·鱼眼凸起
znnnk16 天前
【Python】GUI 开发从入门到实战(三):PyQt/PySide 进阶之路
开发语言·python·pyqt
2601_9622974818 天前
一、Python GUI 的十字路口:免费凑活还是付费破局
python·gui·tkinter·customtkinter·bravurasdk
民乐团扒谱机20 天前
【超详细】PyQt6 实现 AU 风格波形图编辑器:多级缩放与采样点逐级渲染,附全过程代码
开发语言·python·编辑器·pyqt·audition·时域·频谱图
典典分享指南21 天前
Excel SUMIFS 跨表汇总实战:多表条件求和的完整指南
django·flask·numpy·pyqt·fastapi