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 天前
PyQt 翻译(国际化)极简讲解
pyqt
沫璃染墨6 天前
《Qt从零入门系列(一):Qt框架初识——从发展历史到跨平台开发》
c++·qt·系统架构·gui
房开民8 天前
PyQt5 常用模块(对应Qt五大模块)
数据库·pyqt
天天进步20159 天前
UI-TARS 源码解析 #18:drag 与 scroll 源码解析:复杂 GUI 操作如何落到 pyautogui?
gui
懷淰メ12 天前
【AI赋能】基于PyQt+YOLO+DeepSeek水上漂浮物检测系统(详细介绍)
人工智能·yolo·目标检测·计算机视觉·pyqt·漂浮物·水上漂浮物
BW.SU22 天前
瑞佑RUI--工业UI,拖拽即成
stm32·单片机·51单片机·gui·人机界面·单片机可视化设计
Molesidy23 天前
【GUI】【AWTK】基于开阳平台的GUI界面设计环境搭建
linux·gui·awtk
龙腾AI白云1 个月前
【多Agent系统的倒U型曲线与前瞻治理】
人工智能·plotly·pyqt·知识图谱
小bo波1 个月前
Java Swing 图形用户界面实验 —— 从算术练习到游戏开发的完整实践
java·课程设计·gui·游戏开发·扫雷·swing