zoukankan      html  css  js  c++  java
  • QPainter绘制渐进色文本

    参考资料: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);
    
    
    }
  • 相关阅读:
    php里面的变量的使用
    thinkphp框架的大D方法应用
    微信号的openid的深入理解
    thinkphp中的常见静态常亮
    微信qq,新浪等第三方授权登录的理解
    linux的脚本应用for循环答应变量
    linux的slect的脚本适用于交互
    linux下面的打包压缩命令
    linux下面的智能解压脚本smart解压
    Enum 枚举小结 java **** 最爱那水货
  • 原文地址:https://www.cnblogs.com/zhangxuan/p/10145684.html
Copyright © 2011-2022 走看看