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

Qt 文字描边(基础篇)

项目中有时需要文字描边的功能

1.基础的绘制文字

使用drawtext处理

void MainWindow::paintEvent(QPaintEvent *event)
{QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing, true);painter.setRenderHint(QPainter::SmoothPixmapTransform, true);painter.setRenderHints(QPainter::TextAntialiasing, true);QPen pen = painter.pen();QString m_textString = "文本God123";pen.setWidth(1);pen.setColor(QColor(255, 0, 0));painter.setPen(pen);painter.setBrush(QColor(255, 0, 0));//绘制白芯文字,注意文字的位置点设置painter.drawText(100,100,m_textString);}

2.绘制黑边黄字

代码:

void MainWindow::paintEvent(QPaintEvent *event)
{QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing, true);painter.setRenderHint(QPainter::SmoothPixmapTransform, true);painter.setRenderHints(QPainter::TextAntialiasing, true);QPen pen = painter.pen();QString m_textString = "文本God123";QPainterPath path;//注意文字的位置点设置path.addText(100,200,painter.font(), m_textString);pen.setWidth(2);pen.setColor(QColor(0, 0, 0));painter.setPen(pen);//painter.setBrush(QColor(255, 255, 0));//绘制黑边painter.drawPath(path);}

3.只绘制黑边

void MainWindow::paintEvent(QPaintEvent *event)
{QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing, true);painter.setRenderHint(QPainter::SmoothPixmapTransform, true);painter.setRenderHints(QPainter::TextAntialiasing, true);QPen pen = painter.pen();QString m_textString = "文本God123";QPainterPath path;//注意文字的位置点设置path.addText(100,200,painter.font(), m_textString);pen.setWidth(2);pen.setColor(QColor(0, 0, 0));painter.setPen(pen);////painter.setBrush(QColor(255, 255, 0));//绘制黑边painter.drawPath(path);
}

4.绘制黑边红字(另一种方法)

void MainWindow::paintEvent(QPaintEvent *event)
{QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing, true);painter.setRenderHint(QPainter::SmoothPixmapTransform, true);painter.setRenderHints(QPainter::TextAntialiasing, true);QPen pen = painter.pen();QString m_textString = "文本God123";QPainterPath path;//注意文字的位置点设置path.addText(100,200,painter.font(), m_textString);pen.setWidth(2);pen.setColor(QColor(0, 0, 0));painter.setPen(pen);////painter.setBrush(QColor(255, 255, 0));//绘制黑边painter.drawPath(path);pen.setWidth(1);pen.setColor(QColor(255, 0, 0));painter.setPen(pen);painter.setBrush(QColor(255, 0, 0));//绘制白芯文字,注意文字的位置点设置painter.drawText(100,200,m_textString);
}

相关文章:

Qt 文字描边(基础篇)

项目中有时需要文字描边的功能 1.基础的绘制文字 使用drawtext处理 void MainWindow::paintEvent(QPaintEvent *event) {QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing, true);painter.setRenderHint(QPainter::SmoothPixmapTransform, true);painte…...

.360勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

导言: 在数字化时代,.360勒索病毒如影随形,威胁个人和组织的数据安全。本文将深入介绍.360病毒的特征、威胁,以及如何有效地恢复被加密的数据文件,同时提供预防措施,助您更好地保护数字资产。如不幸感染这…...

Nginx(四层+七层代理)+Tomcat实现负载均衡、动静分离

一、Tomcat多实例部署 具体步骤请看我之前的博客 写文章-CSDN创作中心https://mp.csdn.net/mp_blog/creation/editor/134956765?spm1001.2014.3001.9457 1.1 访问测试多实例的部署 1.2 分别在三个tomcat服务上部署jsp的动态页面 mkdir /usr/local/tomcat/webapps/test vim …...

【前端】vscode 相关插件

一 插件: 01、ESLint 用来识别并检查ECMAScript/JavaScript 代码的工具 02、Prettier 用来格式化代码,如.js、.vue、css等都可以进行格式化 03、Vetur 用来识别并高亮vue语法 04、EditorConfig 用来设置vscode的编程行为 二、安装依赖 01、…...

【MySQL】MySQL库的增删查改

文章目录 1.库的操作1.1创建数据库1.2创建数据库案例 2.字符集和校验规则2.1查看系统默认字符集以及校验规则2.2查看数据库支持的字符集2.3查看数据库支持的字符集校验规则2.4校验规则对数据库的影响 3.操纵数据库3.1查看数据库3.2显示创建语句3.3修改数据库3.4数据库删除3.5备…...

基于基于深度学习的表情识别人脸打分系统

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 随着人工智能技术的快速发展,深度学习在计算机视觉领域取得了巨大的突破。表情识别是计算机视觉领域的一个重要研究方向,它可以通过分析人…...

Linux|操作系统|Error: Could not create the Java Virtual Machine 报错的解决思路

现在都流行kubernetes这样的云原生了,因此,很多Java微服务也都集成到类似kubernetes这样的环境下了,毫无疑问的,kubernetes会省去很多环境问题,而最近在部署一个二进制Java项目的时候,遇到了Error: Could n…...

K8S学习指南-minikube的安装

简介 Minikube 是一个用于在本地开发环境中运行 Kubernetes 集群的工具。它允许开发人员在单个节点上体验 Kubernetes,无需配置复杂的生产环境。本指南将详细介绍在 Windows、CentOS 和 Ubuntu 系统上安装 Minikube 的步骤。 1. Windows 系统安装 1.1 &#xff1…...

恒创科技:有哪些免费的CDN加速服务

CDN加速技术已经成为提升网站性能和用户体验的重要手段之一。许多网站都使用CDN来加速内容传输,提高网站的响应速度和可用性。然而,对于许多小型企业和个人网站来说,使用CDN服务需要支付一定的费用。那么,有没有免费的CDN加速服务…...

Kibana搜索数据利器:KQL与Lucene

文章目录 一、搜索数据二、KQL查询1、字段搜索2、逻辑运算符3、通配符4、存在性检查5、括号 三、Lucene查询1、字段搜索2、逻辑运算符3、通配符4、范围搜索5、存在性检查6、括号 四、总结 一、搜索数据 默认情况下,您可以使用 Kibana 的标准查询语言,该…...

float32、int8、uint8、int32、uint32之间的区别

float32、int8、uint8、int32、uint32这些类型在数据表示范围、精度和存储大小等方面存在明显的差异。 float32:是一种单精度浮点数,占32位(也就是4个字节),可以提供约7位有效数字的精度。这种数据类型通常用于需要高…...

百度搜索展现服务重构:进步与优化

作者 | 瞭东 导读 本文将简单介绍搜索展现服务发展过程,以及当前其面临的三大挑战:研发难度高、架构能力欠缺、可复用性低,最后提出核心解决思路和具体落地方案,期望大家能有所收货和借鉴。 全文4736字,预计阅读时间12…...

icmp协议、ip数据包 基础

icmp协议、ip数据包 ICMP 协议 1 定义与用途: ICMP(Internet Control Message Protocol)定义: ICMP 是 Internet Control Message Protocol(互联网控制消息协议)的缩写。它是 TCP/IP 网络模型中的一个核…...

es6从url中获取想要的参数

第一种方法 很古老,通过 split 方法慢慢截取,可行是可行但是这个方法有一个弊端,因为 split 是分割成数组了,只能按照下标的位置获取值,所以就是参数位置一旦发生变化,那么获取到的值也就错位了 let user…...

【elementui笔记:el-table表格的输入校验】

之前做得比较多的校验是在el-form表单里做的,但有时也遇到,需要在table内输入数据,然后校验输入的数据是否符合要求的情况。因此记录一下。 思路: 1.需要借助el-form的校验,el-table外层嵌套一层el-form,使…...

每天五分钟计算机视觉:GoogLeNet的核心模型结构——Inception

本文重点 当构建卷积神经网络的时候,我们需要判断我们的过滤器的大小,这往往也作为一个超参数需要我们进行选择。过滤器的大小究竟是 11,33 还是 55,或者要不要添加池化层,这些都需要我们进行选择。而本文介绍的Inception网络的作用就是代替你来决定,把它变成参数的一部…...

卡片C语言(2021年蓝桥杯B)

分析&#xff1a;我们用一个数组来记录卡牌&#xff0c;我们每使用一张卡牌&#xff0c;就减一张&#xff0c;当卡牌数为-1的时候&#xff0c;说明不够用了&#xff0c;此时我们就打印上一个组合的数字。 #include <stdio.h> int main(){int num[10],i,m,n,j;for(i0;i&l…...

数据库动态视图和存储过程报表数据管理功能设计

需求&#xff1a;需要将ERP的报表数据挪到OA中&#xff0c;但是OA表单设计不支持存储过程动态传参&#xff0c;所以需要设计一个系统&#xff0c;可以手动配置&#xff0c;动态显示原本ERP的报表数据&#xff0c;ERP报表是存在数据库的视图和存储过程中 思路&#xff1a;因为E…...

css+js 选项卡动画效果

选项卡上下左右翻转动画效果 <template><div class"web-box"><div class"topTitle"><div class"topTitle1">标题标题</div></div><div class"info-wrap"><div style"width: 100%;h…...

[C错题本]转义字符/指针与首元素/运算

\a响铃 \b退格 \f换页 \r回车 \t水平制表 \v垂直制表 \单引号 \"双引号 \\反斜杠 \0dd八进制&#xff08;0-7&#xff09; \xdd(0-f)注意x一定不能大写 而且十六进制千万不能写\0xint main() {char s[]"ABCD", *p;for (p s 1; p < s 4; p)printf("%s…...

AI驱动命令行工具:用自然语言生成Shell命令,提升开发运维效率

1. 项目概述&#xff1a;一个能“读懂”你意图的智能命令行工具如果你和我一样&#xff0c;每天有大量时间泡在终端里&#xff0c;那么对命令行工具的效率追求几乎是永无止境的。敲命令、查参数、记路径、处理错误……这些琐碎的操作虽然基础&#xff0c;却实实在在地消耗着我们…...

Smart-10 多模光时域反射仪:铁路高速光纤故障首选

铁路、高速公路通信光纤线路长、环境复杂&#xff0c;精准检测与故障定位是运维关键。Smart-10 多模光时域反射仪集成 OTDR、光功率计、红光源等功能&#xff0c;为交通行业光纤运维提供高效、可靠的解决方案。Smart-10 多模光时域反射仪是一款一体化光纤综合测试仪&#xff0c…...

从零实现神经网络:前向传播、反向传播与梯度下降原理详解

1. 项目概述&#xff1a;从“黑箱”到“白箱”的探索之旅“人工神经网络”这个词&#xff0c;听起来总带着点科幻和神秘色彩&#xff0c;仿佛一个能自己思考的“黑箱”。很多刚接触的朋友&#xff0c;包括几年前的我&#xff0c;都曾被它吓住——又是矩阵运算&#xff0c;又是梯…...

不止于统计:用ArcGIS Model Builder自动化你的土地利用转移矩阵(附模型下载与修改教程)

从手动到智能&#xff1a;ArcGIS Model Builder在土地利用分析中的高阶自动化实践 当规划师面对十年间的土地利用变化数据时&#xff0c;传统的手工操作流程往往成为效率瓶颈。每增加一个研究时段&#xff0c;就需要重复执行数据融合、空间相交、表格导出和矩阵制作等标准化操作…...

RL78/G13单片机定时器外部事件捕获与中断控制LED实践

1. 项目概述与核心思路最近在折腾瑞萨的RL78/G13系列单片机&#xff0c;手头正好有块开发板&#xff0c;就想用它来实现一个基础的定时器功能。这听起来是个老生常谈的话题&#xff0c;但实际动手时&#xff0c;你会发现从选型、配置到调试&#xff0c;每一步都有不少细节值得琢…...

保姆级教程:在Spring Boot项目里正确配置Hutool和BouncyCastle搞定SM4国密加密

Spring Boot项目集成SM4国密加密全流程实战指南 在金融、政务等对数据安全要求严格的领域&#xff0c;国密算法正逐步取代国际通用加密标准成为首选方案。作为国内广泛使用的SM4分组密码算法&#xff0c;其128位分组长度和128/192/256位密钥长度设计&#xff0c;在保证安全性的…...

从零构建高性能内存键值存储:Memvault架构设计与实现详解

1. 项目概述&#xff1a;一个为内存数据打造的“保险箱”最近在折腾一些需要处理大量临时数据的项目&#xff0c;比如实时计算、缓存中间层&#xff0c;还有那种对延迟极其敏感的游戏服务器。这类场景下&#xff0c;Redis这类内存数据库是首选&#xff0c;但总感觉有点“杀鸡用…...

5个技巧快速掌握Fire Dynamics Simulator:从零到火灾模拟专家的完整指南

5个技巧快速掌握Fire Dynamics Simulator&#xff1a;从零到火灾模拟专家的完整指南 【免费下载链接】fds Fire Dynamics Simulator 项目地址: https://gitcode.com/gh_mirrors/fd/fds 你是否曾好奇&#xff0c;当火灾发生时&#xff0c;烟雾如何在建筑中扩散&#xff1…...

告别水下照片的蓝绿色偏:手把手教你用OpenCV和Python实现图像增强与色彩还原

告别水下照片的蓝绿色偏&#xff1a;手把手教你用OpenCV和Python实现图像增强与色彩还原 每次从潜水旅行回来&#xff0c;看着相机里那些本该绚丽多彩的珊瑚礁照片变成一片蓝绿色&#xff0c;总是让人感到沮丧。水下摄影爱好者、海洋生物研究者或是从事水下工程的专业人士都面临…...

MSP430铁电超值系列MCU:25美分实现25种外设的嵌入式设计实战

1. 项目概述&#xff1a;为什么是MSP430铁电超值系列&#xff1f;在嵌入式开发的广阔世界里&#xff0c;选型往往是项目成败的第一步。面对琳琅满目的微控制器&#xff08;MCU&#xff09;&#xff0c;工程师们常常在性能、成本、功耗和开发便利性之间反复权衡。今天我想和大家…...