首页 > 代码库 > 渐变和填充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()
如图: