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

qt QTextEdit用法总结

1. 基本介绍

  • QTextEdit 是 Qt 中用于显示和编辑富文本(支持 HTML 子集)和纯文本的控件。

  • 支持文本格式(字体、颜色、对齐)、列表、表格、图片插入等富文本功能。

  • 底层通过 QTextDocument 管理内容,提供强大的文本处理能力。


2. 核心功能

  • 文本操作:插入、删除、修改文本,支持撤销/重做。

  • 格式控制:字体、字号、颜色、粗体/斜体/下划线、对齐方式等。

  • 富文本支持:通过 HTML/CSS 渲染内容(如 粗体)。

  • 光标操作:通过 QTextCursor 精细控制文本插入、选择和格式。

  • 滚动与换行:自动换行、滚动条控制。


3. 常用方法

// 文本内容操作
setText("Hello World");      // 设置纯文本
append("New line");          // 追加文本
QString text = toPlainText();// 获取纯文本
QString html = toHtml();     // 获取 HTML 内容// 格式设置
setFontFamily("Arial");               // 设置字体
setFontPointSize(12);                 // 字号
setTextColor(Qt::red);                // 文字颜色
setAlignment(Qt::AlignCenter);        // 居中对齐// 光标操作
QTextCursor cursor = textCursor();
cursor.insertText("Inserted Text");   // 插入文本
cursor.insertImage("image.png");      // 插入图片// 查找与替换
find("searchText");                   // 查找文本

find(“searchText”); // 查找文本

4. 关键信号

  • textChanged():文本内容变化时触发。

  • selectionChanged():选中文本变化时触发。

  • cursorPositionChanged():光标位置变化时触发。


5. 高级功能

  • 语法高亮:继承 QSyntaxHighlighter 实现自定义高亮规则。

  • 插入复杂对象:表格、列表、图片、超链接。

cursor.insertTable(2, 2); // 插入 2x2 表格
cursor.insertHtml("<a href='https://example.com'>Link</a>");
  • 打印支持:通过 QTextDocument 导出为 PDF 或打印。

  • 自定义样式:使用 CSS 样式表修改控件外观

setStyleSheet("QTextEdit { border: 2px solid gray; }");

6. 与 QPlainTextEdit 的区别

特性QTextEditQPlainTextEdit
文本类型富文本 + 纯文本纯文本
性能适合中小规模文本适合大规模文本(更高效)
王格式支持五支持字体、颜色、图片等仅基础格式(如换行)
使用场景富文本编辑器、邮件客户端日志显示、代码编辑器

7. 注意事项

  • 性能:处理超长文本时优先考虑 QPlainTextEdit。

  • HTML 支持限制:并非所有 HTML 标签都有效(如 JavaScript)。

  • 光标操作:通过 QTextCursor 实现复杂编辑(如选中多行)。


8. 简单示例

// 创建 QTextEdit 并设置基础属性
QTextEdit *edit = new QTextEdit;
edit->setPlainText("Initial Text");
edit->setFontUnderline(true);
edit->setLineWrapMode(QTextEdit::WidgetWidth); // 自动换行// 响应文本变化
connect(edit, &QTextEdit::textChanged, []() {qDebug() << "Text changed!";
});

9. 适用场景

  • 需要富文本编辑的应用(如 Markdown 编辑器、邮件客户端)。

  • 格式化文本展示(如报告生成、带样式的说明文档)。


  • 通过掌握 QTextEdit 的核心功能和方法,可以实现复杂的文本编辑需求,同时注意在性能敏感场景下合理选择控件。

相关文章:

qt QTextEdit用法总结

1. 基本介绍 QTextEdit 是 Qt 中用于显示和编辑富文本&#xff08;支持 HTML 子集&#xff09;和纯文本的控件。 支持文本格式&#xff08;字体、颜色、对齐&#xff09;、列表、表格、图片插入等富文本功能。 底层通过 QTextDocument 管理内容&#xff0c;提供强大的文本处理…...

《open3d qt 网格采样成点云》

open3d qt 网格采样成点云 效果展示二、流程三、代码效果展示 二、流程 创建动作,链接到槽函数,并把动作放置菜单栏 参照前文 三、代码 1、槽函数实现 void on_actionMeshUniformSample_triggered();//均匀采样 void MainWindow::...

企业数据安全:切实有效的数据安全保障措施分享:

确保企业数据安全是一项持续不懈的任务&#xff0c;鉴于技术的飞速发展&#xff0c;网络攻击者持续探索新型手段以窃取敏感信息并谋取利益。若企业欲避免成为数据泄露的下一个牺牲品&#xff0c;就必须始终保持警觉&#xff0c;预先规划&#xff0c;以不变应万变。为了帮助企业…...

rocketmq-netty通信设计-request和response

1、NettyRemotingServer启动分析 org.apache.rocketmq.remoting.netty.NettyRemotingServer#start public void start() {this.defaultEventExecutorGroup new DefaultEventExecutorGroup(nettyServerConfig.getServerWorkerThreads(),new ThreadFactory() {private AtomicI…...

DeepSeek 助力 Vue 开发:打造丝滑的卡片(Card)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…...

计算机组成原理—— 总线系统(十一)

在追求梦想的旅途中&#xff0c;我们常常会遇到崎岖的道路和难以预料的风暴。然而&#xff0c;正是这些挑战塑造了我们的坚韧和毅力&#xff0c;使我们能够超越自我&#xff0c;触及那些看似遥不可及的目标。不要因为一时的困境而气馁&#xff0c;也不要因为他人的质疑而动摇自…...

电商小程序(源码+文档+部署+讲解)

引言 随着移动互联网的快速发展&#xff0c;电商小程序成为连接消费者与商家的重要桥梁。电商小程序通过数字化手段&#xff0c;为消费者提供了一个便捷、高效的购物平台&#xff0c;从而提升购物体验和满意度。 系统概述 电商小程序采用前后端分离的架构设计&#xff0c;服…...

8、k8s的pv和pvc

pv和pvc的概念 静态 动态——>自动分配 pv&#xff1a;persistent volume&#xff0c;持久化存储卷&#xff0c;描述或者定义存储卷的类型。集群范围内的存储概念&#xff0c;代表的是实际的存储空间&#xff08;本地磁盘、网络系统文件nfs&#xff0c;云存储&#xff09…...

【limit 1000000,10 加载很慢该怎么优化?】

在 SQL 数据库中,使用 LIMIT 子句进行分页查询时,如果偏移量(offset)很大,查询性能可能会变得非常差。 这是因为数据库需要扫描和跳过大量的记录才能到达所需的起始位置,然后再取出所需的记录数。 例如,LIMIT 1000000, 10 表示跳过前 100 万条记录,然后取接下来的 10…...

通过IDEA傻瓜式快速分析java堆内存快照

背景 很多开发都觉得分析堆快照查找内存泄漏、大对象等是一个比较需要技术功底的能力&#xff0c;但其实不然&#xff0c;通过IDEA就可以直接快速分析。 操作流程 通过idea直接打开已经找运维或自行dump好的.hprof文件 选中后&#xff0c;IDEA默认会在底部分析器tab展示解析…...

测试方案整理

搜索引擎放在那里&#xff1f;研发 查看问题样本或者在提取再批量入录等情况&#xff0c;一旦我没有勾选或者全选中已经批量入录的样本&#xff0c;那么在直接点击批量提取或查看问题样本的后&#xff0c;会自动默认为选择全选样本还是按照输入错误处理&#xff1f; 批量查看返…...

2025年视觉、先进成像和计算机技术国际学术会议(VAICT2025)

2025年视觉、先进成像和计算机技术国际学术会议&#xff08;VAICT2025&#xff09; 2025 International Conference on Vision, Advanced Imaging,and Computer Technology 【重要信息】 二轮截稿时间&#xff1a;2025年3月18日 注册截址时间&#xff1a;2025年4月11日 会…...

【黑马点评】jmeter测试秒杀接口前后耗时,和查询店铺(redis+caffeine二级缓存)接口

【黑马点评】jmeter测试秒杀接口前后耗时&#xff0c;和查询店铺缓存穿透接口 4.测试秒杀接口耗时4.1 修改VoucherOrderController4.2 测试原本的接口耗时 5. 测试缓存穿透 这篇是测试&#xff0c;使用RabbitMQ消息异步处理订单&#xff0c;以及不异步处理订单的耗时对比 以及查…...

盛铂科技 SCP4006/4018/4040:国产袖珍式功率计 射频微波功率探头 平均功率计

在通信、电子测量等领域&#xff0c;功率计是确保信号稳定、系统高效运行的关键设备。盛铂科技自主研发的 SCP4000 系列自带 USB 接口的袖珍式 CW 信号平均功率计&#xff0c;以其卓越的性能、高性价比和便捷的操作&#xff0c;在众多同类产品中脱颖而出&#xff0c;成为行业内…...

数据科学之数据管理|统计学

使用python学习统计 目录 01 统计学基础 7 一、 统计学介绍 7 二、 数据和变量 8 02 描述统计 10 一、 描述统计概述 10 二、 分类变量的描述 11 三、 等距数值变量的描述 13 四、 等比数值变量的描述 16 五、 常用软件包介绍 16 六、 数值变量的描述统计 18 (一)…...

C++ 设计模式-建造者模式

以下是一个完整的C建造者模式示例&#xff0c;包含产品类、建造者接口、具体建造者、指挥者以及测试代码&#xff1a; #include <iostream> #include <string> #include <memory>// 产品类&#xff1a;汽车 class Car { public:void setBody(const std::str…...

从零搭建:Canal实时数据管道打通MySQL与Elasticsearch

Canal实时同步Mysql Binlog至 Elasticsearch 文章目录 Canal实时同步Mysql **Binlog**至**Elasticsearch** 一. 环境准备1.环境检查检查Mysql是否开启BinLog开启Mysql BinlogJava环境检查 2.新建测试库和表3.新建Es索引 二.**部署 Canal Server****2.1 解压安装包****2.2 配置 …...

Baumer工业相机堡盟工业相机如何通过BGAPI SDK实现一次触发控制三个光源开关分别采集三张图像(C#)

Baumer工业相机堡盟工业相机如何通过BGAPI SDK实现一次触发控制三个光源开关分别采集三张图像&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机定序器功能的技术背景Baumer工业相机通过BGAPI SDK使用定序器功能预期的相机动作定序器的工作原理 Baumer工业相机通过BGAP…...

网络安全用centos干嘛 网络安全需要学linux吗

网络安全为啥要学Linux系统&#xff0c;据不完全统计&#xff0c;Linux系统在数据中心操作系统上的份额高达70%。它一般运行于服务器和超级计算机上。 所以我们日常访问的网站后台和app后端都是部署在Linux服务器上的&#xff0c;如果你不会Linux系统操作&#xff0c;那么很多…...

【React】react-redux+redux-toolkit实现状态管理

安装 npm install reduxjs/toolkit react-reduxRedux Toolkit 是官方推荐编写Redux的逻辑方式&#xff0c;用于简化书写方式React-redux 用来链接Redux和React组件之间的中间件 使用 定义数据 创建要管理的数据模块 store/module/counter.ts import { createSlice, Payloa…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道

文/法律实务观察组 在债务重组领域&#xff0c;专业机构的核心价值不仅在于减轻债务数字&#xff0c;更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明&#xff0c;合法债务优化需同步实现三重平衡&#xff1a; 法律刚性&#xff08;债…...

恶补电源:1.电桥

一、元器件的选择 搜索并选择电桥&#xff0c;再multisim中选择FWB&#xff0c;就有各种型号的电桥: 电桥是用来干嘛的呢&#xff1f; 它是一个由四个二极管搭成的“桥梁”形状的电路&#xff0c;用来把交流电&#xff08;AC&#xff09;变成直流电&#xff08;DC&#xff09;。…...

Pydantic + Function Calling的结合

1、Pydantic Pydantic 是一个 Python 库&#xff0c;用于数据验证和设置管理&#xff0c;通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发&#xff08;如 FastAPI&#xff09;、配置管理和数据解析&#xff0c;核心功能包括&#xff1a; 数据验证&#xff1a;通过…...

一些实用的chrome扩展0x01

简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序&#xff0c;无论是测试应用程序、搜寻漏洞还是收集情报&#xff0c;它们都能提升工作流程。 FoxyProxy 代理管理工具&#xff0c;此扩展简化了使用代理&#xff08;如 Burp…...