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

OpenFly实战:如何用无人机视觉语言导航工具链快速生成10万条训练数据

OpenFly实战&#xff1a;无人机视觉语言导航数据生成的10倍效率革命 当无人机开始理解人类语言指令时&#xff0c;一场人机交互的革命正在悄然发生。去年在深圳某科技园区&#xff0c;一组工程师仅用72小时就完成了过去需要三个月的数据采集工作——他们使用的秘密武器正是Open…...

云端存储本地化革新:从0到1掌握s3fs-fuse文件系统映射技术

云端存储本地化革新&#xff1a;从0到1掌握s3fs-fuse文件系统映射技术 【免费下载链接】s3fs-fuse FUSE-based file system backed by Amazon S3 项目地址: https://gitcode.com/gh_mirrors/s3/s3fs-fuse 在云计算时代&#xff0c;如何让云端存储像本地硬盘一样便捷访问…...

效率提升利器:用快马生成智能脚本,一键统一团队node.js开发环境

在团队协作开发中&#xff0c;最让人头疼的莫过于"在我电脑上能跑"的环境问题。最近我们团队尝试用InsCode(快马)平台生成智能脚本&#xff0c;彻底解决了Node.js环境配置这个老大难问题。分享下这个提升效率的实践过程&#xff1a; 环境检测自动化 传统方式需要每个…...

通信与导航-技术博客网站上线了-正式

通信与导航-技术博客网站上线了 自2025年3月开始在微信公众号写通信与导航相关技术文章以来&#xff0c;至今已经过11个月。在公众号平台上&#xff0c;积累了相当数量的粉丝&#xff0c;获得了平台的流量推荐&#xff0c;还通过公众号结识了许多业内朋友&#xff0c;线下对接了…...

从零到一:在KEIL5中高效搭建华大HC32F460单片机开发环境

1. 开发环境搭建前的准备工作 第一次接触华大HC32F460单片机时&#xff0c;我完全被各种文件搞得晕头转向。后来才发现&#xff0c;只要理清楚文件结构&#xff0c;搭建开发环境其实并不复杂。这里分享下我的实战经验&#xff0c;帮你避开那些新手常踩的坑。 首先需要明确的是…...

Keil MDK进阶技巧:如何为单个C文件设置独立的优化等级(解决整体优化引发的诡异Bug)

Keil MDK进阶技巧&#xff1a;如何为单个C文件设置独立的优化等级&#xff08;解决整体优化引发的诡异Bug&#xff09; 当你在Keil MDK中为整个工程设置了高优化等级&#xff08;如-O2&#xff09;后&#xff0c;突然发现某个关键模块&#xff08;比如通信协议栈或算法库&…...

2022年中国90米人口密度栅格数据(LandScan)|高精度、单年快照、科研级空间人口产品

&#x1f50d; 数据简介 本数据基于全球权威人口空间分布模型 LandScan™&#xff08;由美国橡树岭国家实验室 ORNL 开发&#xff09;&#xff0c;并融合2020年第七次全国人口普查乡镇级数据、10米土地利用、VIIRS夜间灯光、OSM路网与建筑物足迹&#xff0c;生成 2022年中国90米…...

OpenClaw安全实践:nanobot权限管理指南

OpenClaw安全实践&#xff1a;nanobot权限管理指南 1. 为什么需要关注OpenClaw的安全配置 去年夏天&#xff0c;我在调试一个自动整理照片的OpenClaw任务时&#xff0c;不小心让AI助手误删了整整一个月的旅行照片。这次惨痛教训让我深刻意识到&#xff1a;给AI开放系统操作权…...

MongoDB C Driver事务处理:ACID保证与分布式事务最佳实践

MongoDB C# Driver事务处理&#xff1a;ACID保证与分布式事务最佳实践 【免费下载链接】mongo-csharp-driver The Official C# .NET Driver for MongoDB 项目地址: https://gitcode.com/gh_mirrors/mo/mongo-csharp-driver MongoDB C# Driver是MongoDB官方提供的.NET驱动…...

LFM2.5-1.2B-Thinking-GGUF实战教程:用三句话讲清GGUF——模型本身即教程

LFM2.5-1.2B-Thinking-GGUF实战教程&#xff1a;用三句话讲清GGUF——模型本身即教程 1. 认识LFM2.5-1.2B-Thinking-GGUF LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的一款轻量级文本生成模型&#xff0c;专为低资源环境优化设计。这个模型最大的特点是内置了GGUF格式的模型文…...