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实现艺术字效果的更多相关文章

  1. CentOS下Qt窗口透明效果失效,成黑色背景的问题

    一.问题 Linux系统下Qt窗口的透明效果成了黑色,但同样的代码在windows机子上有透明效果,主要是修改系统的配置,仅在centos6.3及其以上版本实验过.其他系统可以相应配置. 二.问题运行 ...

  2. qt tablewidget搜索效果如下

    from PyQt4.QtCore import *from PyQt4.QtGui import *from PyQt4.Qt import *import sysfrom aa1 import U ...

  3. QT实现透明效果的按钮

    QPushButton { color: rgb(0,88,152) background-color: rgba(97%,80%,9%,50%)}

  4. QT的动画效果 抖动 下坠 透明 最近在开发QT收藏了好多链接

    http://blog.csdn.net/liang19890820/article/details/51888114

  5. css做的艺术字效果

    Arctext.js 转自  http://tympanus.net/Development/Arctext/

  6. QT下的几种透明效果(三种方法:调色板,透明度属性,自绘)

    1.窗口整体透明,但是窗体上的控件不透明.    通过设置窗体的背景色来实现,将背景色设置为全透.  QPalette pal = palette();  pal.setColor(QPalette: ...

  7. QT下的几种透明效果(QPalette背景白色,窗口设置setWindowOpacity,QPainter使用Clear模式绘图)

    1.窗口整体透明,但是窗体上的控件不透明.    通过设置窗体的背景色来实现,将背景色设置为全透. QPalette pal = palette(); pal.setColor(QPalette::B ...

  8. Qt之QSS(黑色炫酷)

    简述 Qt助手中有关于各种部件的QSS详细讲解,资源很丰富,请参考:Qt Style Sheets Examples. 黑色炫酷 - 一款漂亮的QSS风格. 之前博客中分享了很多关于Qt的样式效果,几 ...

  9. Qt制作Aero特效窗口

    转载请注明链接与作者huihui1988 初学QT,边看书边自己做点小东西.最近突然心血来潮,想自己做个小巧点的,界面美观一点的备忘当桌面上.想了半天,发现VISTA/WIN7的Aero效果就不错,况 ...

随机推荐

  1. GDB使用——pwn相关

    目录 寄存器 内存 peda插件命令 x命令详解 后续补充 内容来源 寄存器 1.查看寄存器 2.查看所有寄存器 3.查看某个寄存器 4.修改寄存器的值 内存 1.修改内存值 2.搜索内存 peda插 ...

  2. 会话技术cookie与session

    目录 会话技术cookie 会话技术 cookie 服务器怎样把Cookie写 给客户端 服务器如何获取客户端携带的cookie session session简介 Session如何办到在一个ser ...

  3. android studio: 让项目通过阿里云 maven jcenter 下载依赖资源

    打开项目根目录下的 build.gradle(Project:项目名称一级的gradle),如下所示添加阿里 maven 库地址: // Top-level build file where you ...

  4. MacOS系统降级

    从MacOS 10.14 降级到 10.12,下载好系统镜像文件.打开,复制到Application. 准备一个至少8G的U盘,,打开磁盘工具,『抹掉』(格式化)成Mac OS扩展(日志式),名称可随 ...

  5. sppNet论文学习

    Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition 深度神经网络中用于视觉识别的空间金字塔池化 ...

  6. 怎么用群晖webdav实现外网映射网络驱动器

    前几天刚作好群晖nas局域网内的磁盘映射功能,今天老板又想实现在家里也能跟在公司一样的方便访问映射功能,因为使用网页操作实在太麻烦了.这可怎么办官方提供的 Assistant工具只能操作局域网的,又没 ...

  7. Qt编写自定义控件56-波浪曲线

    一.前言 波浪曲线控件,其实是之前一个水波进度条控件的一个核心,其实就是利用正弦曲线来生成对应的坐标进行绘制,把这个功能单独提取出来,是为了更详细的研究各种正弦余弦等拓展效果,当时写这个效果的时候,参 ...

  8. 123457123456#0#-----com.threeapp.XueShuXue013----儿童学数学(13种方法)

    com.threeapp.XueShuXue013----儿童学数学(13种方法)

  9. python中简化的验证码功能

    验证码一般用来验证登陆.交易等行为,减少对端为机器操作的概率,python中可以使用random模块,char()内置函数来实现一个简单的验证码功能. import random def veri_c ...

  10. 微信小程序之对象转化为数组

    对象转成数组方式一(数组里面是一个个number类型的元素) let dictObject= { , , , , }; // 对象转成数组方式一 var createArr = [] for (let ...