参考资料:https://blog.csdn.net/what951006/article/details/52876513

效果图:

代码:

void WgtText::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);

    QFont font;
    font.setFamily("Microsoft YaHei");
    // 大小
    font.setPointSize(20);
    // 斜体
    font.setItalic(true);
    // 设置字母大小写
    //font.setCapitalization(QFont::SmallCaps);
    // 设置字符间距
    font.setLetterSpacing(QFont::AbsoluteSpacing, 20);
    // 设置加粗
    //font.setBold(true);
    // 使用字体
    painter.setFont(font);

    QString m_Text1("AAAAAAAAAAAA");
    QString m_Text2("BBBBBBBBBBBB");
    QFontMetrics metrics = painter.fontMetrics();

    int y=((height()-20)/2-metrics.height())/2+20;
    int bottomwidth=width()-metrics.width(m_Text2);

    QLinearGradient m_normalGradient;

   /*
    *frist part
    */
       m_normalGradient.setStart(0, y);
       m_normalGradient.setFinalStop(0, y+metrics.height());
       m_normalGradient.setColorAt(0, QColor(255,0,0));
       m_normalGradient.setColorAt(1, QColor(255,255,0));


       painter.setPen(QPen(m_normalGradient,0));
       painter.drawText(10, y,metrics.width(m_Text1),metrics.height(),Qt::AlignLeft, m_Text1);

   /*
    *second part
   */
       m_normalGradient.setStart(0, y+height()/2);
       m_normalGradient.setFinalStop(0, y+(height()-20)/2+metrics.height());
       m_normalGradient.setColorAt(0, QColor(0,255,0));
       m_normalGradient.setColorAt(1, QColor(0,0,255));


       painter.setPen(QPen(m_normalGradient,0));
       painter.drawText(bottomwidth-10, y+(height()-20)/2,metrics.width(m_Text2),metrics.height(),Qt::AlignLeft, m_Text2);

}

QPainter绘制渐进色文本的更多相关文章

  1. PyQt5利用QPainter绘制各种图形

    这个例子我做了好几天: 1)官网C++的源码,改写成PyQt5版本的代码,好多细节不会转化 2)网上的PyQt的例子根本运行不了 填了无数个坑,结合二者,终于能完成了一个关于绘图的东西.这个过程也掌握 ...

  2. 利用QPainter绘制各种图形(Shape, Pen 宽带,颜色,风格,Cap,Join,刷子)

    利用QPainter绘制各种图形 Qt的二维图形引擎是基于QPainter类的.QPainter既可以绘制几何形状(点.线.矩形.椭圆.弧形.弦形.饼状图.多边形和贝塞尔曲线),也可以绘制像素映射.图 ...

  3. QPainter绘制遇到的小问题

    1.Qt绘图基础 (1)绘图需画笔和画布: QPainter 相当于Qt中的一个画笔,绘制时需要一块画布, Qt中扮演画布角色的组件为QPaintDevice和他的各个子类,如: QWidget, Q ...

  4. 利用QPainter绘制散点图

    [1]实例代码 (1)代码目录结构(备注:QtCreator默认步骤新建工程) (2)工程pro文件 QT += core gui greaterThan(QT_MAJOR_VERSION, ): Q ...

  5. QT 使用QPainter 绘制图形 和 世界变换 world transform

    1. 绘制椭圆  饼状型 贝塞尔曲线 绘制图像重写方法 void paintEvent(QPaintEvent *event)即可. void Widget::paintEvent(QPaintEve ...

  6. QPainter绘制图片填充方式(正常大小、剪切大小、自适应大小、平铺)

    Qt中QPainter提供了绘制图像的API,极大地方便了我们对图像的绘制. Qt中提供了QPixmap, QBitmap,QBitMapQImage,QPicture等图像绘图设备,它们的类关系如下 ...

  7. QPainter 绘制图像接口

    阅读本文大概需要 3 分钟 我们在开发软件的过程中,绘制图像功能必不可少,使用 Qt 绘制图像时非常简单,只需要传递几个参数就可以实现功能,在 Qt 中绘制图像的 api有好几个 void drawI ...

  8. QPainter绘制特殊线条

    参考资料: https://www.cnblogs.com/Jace-Lee/p/5946342.html 效果图: 代码: void WgtText::paintEvent(QPaintEvent ...

  9. Qt使用QPainter绘制矢量图并保存为svg文件

    位图和矢量图: Bitmap: Usually a larger file size Cannot be enlarged into a higher resolution as the image ...

随机推荐

  1. MongoDB数据库的基本操作

    非关系型数据库(json数据库) npm install mongoose --save 启动数据酷: mongod --config /usr/local/etc/mongod.conf 这里可以将 ...

  2. centos6.6 安装MariaDB

    参考文章:yum安装MariaDB(使用国内镜像快速安装,三分钟安装完毕) 安装环境: virtualbox下CentOS6.6(32位) 遇到的问题: 通过Maria官方提供的安装方式,源是国外的源 ...

  3. centos7 查看防火墙状态

    [root@xxx ~]# firewall-cmd --state not running

  4. 远程连接MySQL MySQL的远程连接

    在笔记本上安装了mysql, 想测试一下连接池对性能的影响,用了另一台PC来测试一段sql,出现以下错误: jdbc:mysql://10.201.11.128:3306/test Cannot cr ...

  5. javaee开发模式

    model1模式:技术组成:jsp+javaBeanmodel1的弊端:随着业务复杂性 导致jsp页面比较混乱model2模式:技术组成:jsp+servlet+javaBeanmodel2的优点:开 ...

  6. python特殊成员函数

    1.__init__():构造函数 2.__del__():析构函数 3.print(__doc__):打印描述信息 4.print(Dog.__module__):类来自的模块 5.print(d1 ...

  7. Mac批量转换mp3为caf

    创建一个sh文件,输入如下代码后运行. 遍历文件夹中的mp3然后使用afconvert命令进行转换. #!/bin/bash for i in *.mp3; do afconvert $i " ...

  8. 牛客国庆集训派对Day3 G Stones

    Stones 思路: sg函数打表找规律 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #in ...

  9. Codeforces 458C - Elections

    458C - Elections 思路: 三分凹形函数极小值域 代码: #include<bits/stdc++.h> using namespace std; #define ll lo ...

  10. Python&HDF5目录

    最近一直没更新python&量化的博客,是因为忙于看HDF5的书,写VNPY框架,学scrapy爬虫. 本来写博客的目的就是为了当作一种教材,当遇到不会的问题过来找答案. 对于HDF5下面这本 ...