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效果就不错,况 ...
随机推荐
- Eclipse插件(导出UML图,打开文件资源管理器插件,静态代码分析工具PMD,在eclipse上安装插件)
目录 能够导出UML图的Eclipse插件 打开文件资源管理器插件 Java静态代码分析工具PMD 如何在eclipse上安装插件 JProfiler性能分析工具 从更新站点安装EclEmma 能够导 ...
- linux操作利器alias用法
写在前边 学习这件事,有时候并不一定很刻意,而是从生活,从经验中去积累,不知道什么时候就发生了. type 命令 一般情况下,type命令被用于判断另外一个命令是否是内置命令,但是它实际上有更多的用法 ...
- C++在线编程网站
1.推荐 http://www.dooccn.com/cpp/ 2.https://wandbox.org/ 3.https://www.tutorialspoint.com/compile_cpp_ ...
- 机器学习 - 算法 - PCA 主成分分析
PCA 主成分分析 原理概述 用途 - 降维中最常用的手段 目标 - 提取最有价值的信息( 基于方差 ) 问题 - 降维后的数据的意义 ? 所需数学基础概念 向量的表示 基变换 协方差矩阵 协方差 优 ...
- YApi内部部署文档
旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API 1.安装Node.js环境(7.6+) 1.官网下载适合的nodejs版本放置在/usr/package ...
- 002-创建型-05-原型模式(Protype)
一.概述 指原型实例指定创建对象的种类,并通过克隆这些原型创建新的对象 原型模式就是让类实现Cloneable接口,达到克隆原型类的方式. 1.1.适用场景 1.在创建对象的时候,我们不只是希望被创建 ...
- word 2010中设置默认粘贴为 只保留文本粘贴【visio也适用于快捷键方式】
VISIO也适用如下方式: 3. 当然也可以直接是 Ctrl + Alt + V打开选择性粘贴选项卡 来选择其中某项来粘贴也是可以的 转: word 2010中设置默认粘贴为 只保留文本粘贴 2012 ...
- osg 加载 fbx文件
#ifdef _WIN32 #include <Windows.h> #endif // _WIN32 #include <osg/Group> #include <os ...
- 运行时给java对象动态的属性赋值
运行时给java对象动态的属性赋值 如何给java对象动态的属性赋值(也就是在代码执行的时候才决定给哪个属性赋值) 1.自定义一个工具类ReflectHelper,代码如下所示: pa ...
- HttpClient结合PostMethod调用接口
HttpClient结合PostMethod调用接口 解决方法: HttpClient client = new HttpClient(); PostMethod post = new PostM ...