当前位置: 首页 > ds >正文

【PyQt5】从零开始的PyQt5 - QTextEdit 篇

从零开始的PyQt5 - QTextEdit 篇

  • 引言
  • 一、简述
  • 二、例程
    • 2.1 显示文本
    • 2.2 使用append追加,并且控制行数
    • 2.3 显示表格
  • 三、参考

引言

QTextEdit 是 Qt 框架中用于显示和编辑富文本(如 HTML、表格、图像等)和纯文本的控件。它继承自 QAbstractScrollArea,提供滚动功能,并支持复杂的文本格式、光标操作、撤销/重做等功能。本文主要简述PyQt5中的QTextEdit以及展示常用例程。

一、简述

    1. QTextEdit被用来做显示的窗口,一般用来显示日志
      使用setHtml()设置文本,该方法清空现有内容。使用QTextCursor类或使用函数insertHtml()、insertPlainText()、append()或paste()插入。
      避免占用大量内存,可以使用QTextDocument的maximumBlockCount属性来实现段落总数的控制。如果只显示很少的文本,可使用QLabel
    1. QTextEdit被用来做文本编辑器
      文本的选择由QTextCursor类处理,该类提供创建选择、检索文本内容或删除选择的功能。可以使用textCursor()方法检索与用户可见光标对应的对象。
      QTextEdit包含一个QTextDocument对象,可以使用document()方法检索该对象。还可以使用setDocument()设置自己的文档对象。

二、例程

2.1 显示文本

  • 效果展示
    在这里插入图片描述

  • 源码

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit
from PyQt5.QtCore import Qtclass ExampleApp(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):text_edit = QTextEdit(self)  # 创建一个QTextEdit,添加到此窗口中 (父窗口设置为此窗口)text_edit.setHtml("<b>Hello</b> <font color='red'>World</font>")  # 设置内容text_edit.setAlignment(Qt.AlignCenter)    # 居中text_edit.resize(300, 100)                # 设置大小self.setGeometry(300, 300, 300, 100)      # 设置窗口的布局self.show()if __name__ == '__main__':app = QApplication(sys.argv)ex = ExampleApp()sys.exit(app.exec_())

2.2 使用append追加,并且控制行数

  • 效果展示 (增加text_edit.document().setMaximumBlockCount(10),限制为10)
    需要注意10指的是段落不是展示的行数,由于宽度,一段可能有多行)
    在这里插入图片描述在这里插入图片描述

  • 源码

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit
from PyQt5.QtCore import Qtclass ExampleApp(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):text_edit = QTextEdit(self)  # 创建一个QTextEdit,添加到此窗口中 (父窗口设置为此窗口)text_edit.document().setMaximumBlockCount(10)  # 限制for i in range(15):text_edit.append(f"这是第 {i + 1} 行内容")text_edit.resize(300, 300)                # 设置大小self.setGeometry(300, 300, 300, 300)      # 设置窗口的布局self.show()if __name__ == '__main__':app = QApplication(sys.argv)ex = ExampleApp()sys.exit(app.exec_())

2.3 显示表格

  • 效果展示
    在这里插入图片描述

  • 源码

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit
from PyQt5.QtGui import QTextCharFormat, QFontclass ExampleApp(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):text_edit = QTextEdit(self)  # 创建一个QTextEdit,添加到此窗口中 (父窗口设置为此窗口)text_edit.setHtml("""<style>table {border-collapse: collapse;width: 100%;}th, td {border: 1px solid black;padding: 8px;text-align: left;}th {background-color: #f2f2f2;}</style><table><tr><th>Name</th><th>Age</th></tr><tr><td>Alice</td><td>25</td></tr></table>""")text_edit.resize(300, 100)                # 设置大小self.setGeometry(300, 300, 300, 100)      # 设置窗口的布局self.show()if __name__ == '__main__':app = QApplication(sys.argv)ex = ExampleApp()sys.exit(app.exec_())

三、参考

【pyqt5】比较多的文字插入QTextEdit造成崩溃的问题:https://blog.csdn.net/qq_45236230/article/details/105592423
QTextEdit 设置上限行数,超过上限行数自动删除行:https://blog.csdn.net/Blasit/article/details/137770281
QTextEdit设置显示的最大行数:https://blog.csdn.net/qq_44365088/article/details/118148218

http://www.xdnf.cn/news/13776.html

相关文章:

  • 2025北京智源大会核心内容
  • RAG系统中Rerank技术的深度解析与应用实践
  • DNS的工作原理
  • 【AI News | 20250611】每日AI进展
  • IPv6检测指标中的IPv6授权体系是什么意思?(国科云)
  • HTML5 定位网页元素
  • 让DELPHI11及之后的新版本编译的程序支持Windows XP
  • 2025暑假第三十二届全国高校人工智能(多模态大模型+具身智能)与嵌入式高级师资培训通知
  • 6.11本日总结
  • MVVM 分层思想详解
  • Binder
  • matlab脉冲信号并绘制波形2025.6.11
  • 12.安卓逆向2-frida hook技术-HookJava重载方法
  • element-MessageBox 弹框组件 调整按钮位置(确认在左,取消在右)、删除场景回车调取消事件,默认调确认事件
  • 串口通信入门基础
  • 【Linux】Makefile基础
  • Halcon深度图转换(real、uint2、byte)
  • 基本多线程编译make命令
  • 达梦数据库raw绑定磁盘-DSC集群部署
  • 再说一说LangChain Runnable接口
  • 禁止虚拟机里的Win10的Windows Defender
  • 【热更新知识】学习一 Lua语法学习
  • 【学习笔记】计算机操作系统(六)—— 输入输出系统
  • 基于 Spring AI 的 MCP 客户端/服务端实现
  • Java中的设计模式:23种经典模式在实际项目中的应用案例
  • 一款包含150个APP移动端网站UI的psd适用于服装鞋类社交电商项目
  • 论文略读:Mixture-of-Agents Enhances Large Language Model Capabilities
  • 力扣HOT100之贪心算法:55. 跳跃游戏
  • 如何在 Docusign 批量发送信封?
  • Cesium 常见方法汇总