QPlainTextEdit使用HTML方式设置颜色

2024-03-29 04:38

本文主要是介绍QPlainTextEdit使用HTML方式设置颜色,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

QPlainTextEdit可使用HTML方式设置文本颜色,代码如下:

#include <QtWidgets>const QString& makeText()
{static const QString texts[] = {QString::fromLatin1("Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua."),QString::fromLatin1("Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat."),QString::fromLatin1("Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."),QString::fromLatin1("Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."),QString::fromLatin1("Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi."),QString::fromLatin1("Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat."),QString::fromLatin1("Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat."),QString::fromLatin1("Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum."),QString::fromUtf8("HTML Meta-Characters: < > & \" ' and\nnon-ASCII characters: \xc3\xa4 \xc3\xb6 \xc3\xbc \xc3\x9f \xc3\x84 \xc3\x96 \xc3\x9c")};enum { NTexts = sizeof texts / sizeof *texts };return texts[qrand() % NTexts];
}const QString formatHtml(const QString &qText, const QColor &qColor)
{QString qHtmlText= QString::fromLatin1("<p style='color: ")% qColor.name(QColor::HexRgb)% QString::fromLatin1("'>");for (const QChar qChar : qText) {switch (qChar.unicode()) {case '<': qHtmlText += QString::fromLatin1("&lt;"); break;case '>': qHtmlText += QString::fromLatin1("&gt;"); break;case '&': qHtmlText += QString::fromLatin1("&amp;"); break;case '"': qHtmlText += QString::fromLatin1("&quot;"); break;case '\'': qHtmlText += QString::fromLatin1("&apos;"); break;case '\n': qHtmlText += QString::fromLatin1("<br/>"); break;//不确定是否有效default: qHtmlText += qChar; // everything else unchanged}}qHtmlText += QString::fromLatin1("</p>");return qHtmlText;
}int main(int argc, char **argv)
{qDebug() << "Qt Version:" << QT_VERSION_STR;QApplication app(argc, argv);// setup GUIQPlainTextEdit qTxtEdit;qTxtEdit.show();// install signal handlersQTimer qTimer;qTimer.setInterval(1000); // 1000 ms = 1 sQObject::connect(&qTimer, &QTimer::timeout,[&]() {const QColor qColor(qrand() % 4 == 1 ? 0xFF0000 : 0x000000);qTxtEdit.appendHtml(formatHtml(makeText(), qColor));});qTimer.start();// runtime loopreturn app.exec();
}

WIN10系统下显示效果:
这里写图片描述

这篇关于QPlainTextEdit使用HTML方式设置颜色的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/857621

相关文章

C++变换迭代器使用方法小结

《C++变换迭代器使用方法小结》本文主要介绍了C++变换迭代器使用方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、源码2、代码解析代码解析:transform_iterator1. transform_iterat

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

C++中std::distance使用方法示例

《C++中std::distance使用方法示例》std::distance是C++标准库中的一个函数,用于计算两个迭代器之间的距离,本文主要介绍了C++中std::distance使用方法示例,具... 目录语法使用方式解释示例输出:其他说明:总结std::distance&n编程bsp;是 C++ 标准

前端高级CSS用法示例详解

《前端高级CSS用法示例详解》在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交互和动态效果的关键技术之一,随着前端技术的不断发展,CSS的用法也日益丰富和高级,本文将深... 前端高级css用法在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co