Qt实现艺术字效果
Qt实现艺术字效果,通常有三种方式,一种是通过绘制机制,另外一种是使用样式表,最后一种是通过图片代替,本次介绍使用绘制来实现艺术字效果。
代码如下(分两种实现):
第一种:
QPainter painter(this);
QPen pen;
pen.setWidth(2);
pen.setColor(Qt::red);
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(pen);
QLinearGradient linearGrad;
bool ifTransparent = false;
if (ifTransparent){
linearGrad.setColorAt(0, Qt::transparent); // 字体透明 只有边框
} else {
linearGrad.setColorAt(0, Qt::blue); // 字体利用特定颜色来填充
}
QFont font;
font.setPointSize(40);
font.setBold(true);
QPainterPath textPath;
QRect painterRect = rect();
QString str = QStringLiteral("花莫弦");
textPath.addText(width() / 2, painterRect.bottom() / 2, font, str);
painter.setBrush(linearGrad);
painter.drawPath(textPath);
效果图:
第二种:
QPainter painter(this);
QFont font;
font.setPointSize(40);
font.setBold(true);
QFontMetrics metrics(font);
QPainterPath path;
QPen pen(QColor(255, 0, 0, 100));
int penWidth = font.pointSize() * 0.5;
if (penWidth > 6) {
penWidth = 6;
}
pen.setWidth(penWidth);
int len = metrics.width(QStringLiteral("花莫弦"));
int w = width();
int px = (len - w) / 2;
if (px < 0) {
px = -px;
}
int py = (height() - metrics.height()) / 2 + metrics.ascent();
if(py < 0)
{
py = -py;
}
path.addText(px, py, font, QStringLiteral("花莫弦"));
painter.strokePath(path, pen);
painter.drawPath(path);
painter.fillPath(path, QBrush(Qt::blue));
效果图:
---------------------
作者:花莫弦
来源:CSDN
原文:https://blog.csdn.net/u011822862/article/details/80559762
版权声明:本文为博主原创文章,转载请附上博文链接!
Qt实现艺术字效果的更多相关文章
- CentOS下Qt窗口透明效果失效,成黑色背景的问题
一.问题 Linux系统下Qt窗口的透明效果成了黑色,但同样的代码在windows机子上有透明效果,主要是修改系统的配置,仅在centos6.3及其以上版本实验过.其他系统可以相应配置. 二.问题运行 ...
- qt tablewidget搜索效果如下
from PyQt4.QtCore import *from PyQt4.QtGui import *from PyQt4.Qt import *import sysfrom aa1 import U ...
- QT实现透明效果的按钮
QPushButton { color: rgb(0,88,152) background-color: rgba(97%,80%,9%,50%)}
- QT的动画效果 抖动 下坠 透明 最近在开发QT收藏了好多链接
http://blog.csdn.net/liang19890820/article/details/51888114
- css做的艺术字效果
Arctext.js 转自 http://tympanus.net/Development/Arctext/
- QT下的几种透明效果(三种方法:调色板,透明度属性,自绘)
1.窗口整体透明,但是窗体上的控件不透明. 通过设置窗体的背景色来实现,将背景色设置为全透. QPalette pal = palette(); pal.setColor(QPalette: ...
- QT下的几种透明效果(QPalette背景白色,窗口设置setWindowOpacity,QPainter使用Clear模式绘图)
1.窗口整体透明,但是窗体上的控件不透明. 通过设置窗体的背景色来实现,将背景色设置为全透. QPalette pal = palette(); pal.setColor(QPalette::B ...
- Qt之QSS(黑色炫酷)
简述 Qt助手中有关于各种部件的QSS详细讲解,资源很丰富,请参考:Qt Style Sheets Examples. 黑色炫酷 - 一款漂亮的QSS风格. 之前博客中分享了很多关于Qt的样式效果,几 ...
- Qt制作Aero特效窗口
转载请注明链接与作者huihui1988 初学QT,边看书边自己做点小东西.最近突然心血来潮,想自己做个小巧点的,界面美观一点的备忘当桌面上.想了半天,发现VISTA/WIN7的Aero效果就不错,况 ...
随机推荐
- 关于Linux安装中NAT模式和桥接模式的区别详解
1.一般我们在创建一个Linux虚拟机时候,会面临三个网络配置选择: 桥接模式.nat模式.host-only模式(主机模式,这个模式用得少,就不介绍了) 2.NAT模式: 所谓nat模式,就是虚拟系 ...
- 代码检查p626
1 编译运行p626 图10-3代码,提交编译运行的截图 2 STDOUT_FILENO的值是多少?提交在Ubuntu中查找这个值的命令截图
- 开发WINDOWS服务程序
开发WINDOWS服务程序 开发步骤: 1.New->Other->Service Application 2.现在一个服务程序的框架已经搭起来了,打开Service1窗口,有几个属性说明 ...
- 论文翻译 DOTA:A Large-scale Dataset for Object Detection in Aerial Images
简介:武大遥感国重实验室-夏桂松和华科电信学院-白翔等合作做的一个航拍图像数据集 摘要: 目标检测是计算机视觉领域一个重要且有挑战性的问题.虽然过去的十几年中目标检测在自然场景已经有了较重要的成就 ...
- java 虚拟机类加载 及内存结构
http://www.jb51.net/article/105920.htm https://www.cnblogs.com/Qian123/p/5707562.html Java类加载全过程 一个j ...
- spark "main" java.lang.ArrayIndexOutOfBoundsException: 10582
升级 你的 paranamer 到2.8 ,这是由于你的jdk版本1.8导致 <!-- https://mvnrepository.com/artifact/com.thoughtworks.p ...
- zabbix4.4 (server,proxy,agent)安装部署实战
一. 部署架构图 二. 安装环境及版本信息 操作系统:centos7 zabbix版本: 4.4 mysql: 5.7.28 三.zabbix server安装(192.168.182.132) rp ...
- Mysql读写分离(Mycat版)
(1).读写分离概述 1)工作原理 读写分离是让主数据库处理事务性增删改操作(insert.delete.update),让从数据库处理查询查询操作(select). 2)作用 1.分担负载 2.主从 ...
- Day5作业,商城+ATM机+后台管理
晚来了....东西太多,需要写的blog内容太多,re讲的渣渣,不明白为什么oldboy经常换老师,吐槽下吧,真心不爱了.... github地址在这:https://github.com/ccorz ...
- pycharm重命名文件
先右键要重命名的文件,然后按照下图操作: