qt QTextEdit用法总结

news/2025/2/20 11:27:49/

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 的核心功能和方法,可以实现复杂的文本编辑需求,同时注意在性能敏感场景下合理选择控件。

http://www.ppmy.cn/news/1572873.html

相关文章

TDengine 客户端连接工具 taos-Cli

简介工具获取运行命令行参数 基础参数高级参数 数据导出/导入 数据导出数据导入 执行 SQL 脚本使用小技巧 TAB 键自动补全设置字符列显示宽度其它 错误代码表 简介 TDengine 命令行工具&#xff08;以下简称 TDengine CLI&#xff09;是用户操作 TDengine 实例并与之交互最简…

【Pico】使用Pico进行无线串流搜索不到电脑

使用Pico进行无线串流搜索不到电脑 官串方式&#xff1a;使用Pico互联连接电脑。 故障排查 以下来自官方文档 请按照以下步骡排除故障&#xff1a; 确认电脑和一体机连接了相同的路由器WiFi网络(相同网段) IP地址通常为192.168.XX&#xff0c;若两设备的IP地址前三段相同&…

【第10章:自然语言处理高级应用—10.4 NLP领域的前沿技术与未来趋势】

各位技术探险家们,今天我们要开启一场穿越语言智能奇点的时空之旅。从正在改写物理定律的万亿参数大模型,到能看懂《星际穿越》剧本的跨模态AI,再到正在颠覆编程方式的神经-符号混合系统……这篇万字长文将带你摸清NLP技术进化的七块关键拼图。(建议边读边做笔记,文末有技…

小米平板怎么和电脑共享屏幕

最近尝试使用小米平板和电脑屏幕分屏互联 发现是需要做特殊处理的&#xff0c;需要下载一款电脑安装包&#xff1a;小米妙享 关于这个安装包&#xff0c;想吐槽的是&#xff1a; 没有找到官网渠道&#xff0c;是通过其他网络方式查到下载的 不附录链接&#xff0c;原因是因为地…

《安富莱嵌入式周报》第350期:Google开源Pebble智能手表,开源模块化机器人平台,开源万用表,支持10GHz HRTIM的单片机,开源CNC控制器

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版&#xff1a; https://www.bilibili.com/video/BV1YPKEeyEeM/ 《安富莱嵌入式周报》第350期&#xff1a;Google开…

TDengine 性能测试工具 taosBenchmark

简介工具获取运行 无参数模式命令行模式配置文件模式 命令行参数配置文件参数 通用配置参数写入配置参数 数据库相关超级表相关标签列与数据列写入行为相关 查询配置参数 执行指定查询语句查询超级表 订阅配置参数数据类型对照表 配置文件示例 写入 JSON 示例查询 JSON 示例订阅…

前沿科技一览当今创新技术趋势

区块链技术现在越来越受欢迎&#xff0c;它在版权方面也发挥着重要作用。 首先&#xff0c;区块链是种去中心化的数据库&#xff0c;记录了所有交易信息。这些信息一旦被记录就无法更改&#xff0c;这样就能保证版权信息的真实性和完整性。对于创作者来说&#xff0c;这是一大…

Pytest快速入门

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 为什么要用Pytest pytest 的官方网站介绍&#xff0c;它具有如下特点&#xff1a; 非常容易上手&#xff0c;入门简单&#xff0c;文档丰富&#xff0c;文档中有…