Qt/C++ QLinearGradient线性渐变使用方法!!少走弯路啊

一,介绍QLinearGradient与心得体会

一,这个类叫线性渐变色类,还有QRadialGradient辐射渐变类,QConicalGradient弧度渐变,都是根据QGradient继承来的,QLinearGradient是用的最多的,一般与QPainter联合使用来刷图层,这个类有个细节点,就是这个!!!
m_normalGradient.setStart(x, y);
m_normalGradient.setFinalStop(x,y+5);

这个必须要成对出现,例如上面代码:当setStart 与setFinalStop 的X相同的时候 就是由上往下刷,x,y就代表刷的位置点!如: setStart(0,10) 与setFinalStop(0,30) 就说明 从高度为10刷到高度为30的区域!

二,代码样例分析

先上图:
常态
hover

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


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


            painter.setPen(QColor(0, 0, 0, 200));
            painter.drawText(11, y+1,metrics.width(m_Text1),metrics.height(),Qt::AlignLeft,m_Text1);//左对齐

            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());


            painter.setPen(QColor(0, 0, 0, 200));
            painter.drawText(bottomwidth-9, y+(height()-20)/2+1,metrics.width(m_Text2),metrics.height(),Qt::AlignLeft,m_Text2);//左对齐

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

分析:两行歌词,我就设置了两次QLinearGradient位置~意思就是以后要使用这个,必须要理清要刷的位置,希望本文章让学习者少走弯路~

三,更多:

更多文章:http://blog.csdn.net/what951006
powered by:小乌龟在大乌龟背上~

猜你喜欢

转载自blog.csdn.net/zx249388847/article/details/81196153