首页 > 代码库 > 渐变和填充01

渐变和填充01

# -*- coding: utf-8 -*-

# python:2.x

__author__ = ‘Administrator‘

#渐变和填充

#说明

"""

简单来说就是可以把几种颜色混合在一起,让它们能够自

然地过渡,而不是一下子变成另一种颜色。渐变的算法比较复杂,写得不好的话效率会很低,

好在很多绘图系统都内置了渐变的功能, Qt  也不例外。渐变一般是用在填充里面的,所以,

设置渐变是在 QBrush 里面。

"""

#在qt中3种渐变方法:线性渐变(QLinearGradient)、辐射渐变(Q RadialGradient)和角度渐变(QConicalGradient)

from PyQt4.QtGui import  *

from PyQt4.Qt import *

from PyQt4 import QtGui, QtCore

from PyQt4.QtCore import *

import sys

class Painterd(QWidget):

    def __init__(self):

        super(Painterd,self).__init__()

        self.resize(400,300)

        self.setWindowTitle(‘paint‘)

        #画笔

    def paintEvent(self, e):

        # linearGradient方法

        paint=QPainter(self)

        paint.setRenderHint(paint.Antialiasing,True)

        linearGradient=QLinearGradient(60,50,200,200)#x1=60,x2=50,y1=200,y2=200

        #x1,x2表示开始,y1,y2表示结束

        #QGradient::setColorAt ( qreal position, const QColor & color)

        linearGradient.setColorAt(.2,Qt.white)

        linearGradient.setColorAt(.6,Qt.green)

        linearGradient.setColorAt(1.,Qt.black)

        paint.setBrush(QBrush(linearGradient))

        paint.drawEllipse(50,50,200,150)

#obj.setColorAt()区别范围是0.0到1.0之间,闭区间

def main():

    app = QtGui.QApplication(sys.argv)

    ex =Painterd()

    ex.show()

    sys.exit(app.exec_())

if __name__ == ‘__main__‘:

    main()

 如图: