当前位置: 首页 > 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…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的&#xff0c;启动是正常的&#xff0c; 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...