首页 > 代码库 > qt画刷和画笔

qt画刷和画笔

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

# python:2.x

__author__ = ‘Administrator‘

#画刷和画笔:QBrush 定义了 QPainter 的填充模式,具有样式、颜色、渐变以及纹理等属性。

# 画刷的 style()定义了填充的样式,使用 Qt::BrushStyle 枚举,默认值是 Qt::NoBrush,也就是不进行任何填充。

#画刷的 color()定义了填充模式的颜色。这个颜色可以是  Qt  预定义的颜色常量,也就是

# Qt::GlobalColor,也可以是任意 QColor 对象。画刷的 gradient()定义了渐变填充。这个属性只有在样式是 Qt::LinearGradientPattern、

# Qt::RadialGradientPattern 或者 Qt:: ConicalGradientPattern 之一时才有效。渐变可以由

# QGradient 对象表示。Qt  提供了三种渐变:QLinearGradient、QConicalGradient 和

# QRadialGradient,它们都是 QGradient 的子类。我们可以使用如下代码片段来定义一个

# 渐变的画刷

#学习地址:http://blog.csdn.net/lpp0900320123/article/details/25246873

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(200,100)

        self.setWindowTitle(‘paint‘)

        #画笔

    def paintEvent(self, e):

        paint=QPainter(self)

        paint.drawLine(0,0,100,100)#直线

        pen=QPen(Qt.green,5,Qt.DashDotLine,Qt.FlatCap,Qt.RoundJoin)

        paint.setPen(pen)#使用画笔

        rectanglen=QRectF(70.,40.,80.,60.)

        start1=30*16

        start2=120*16

        #绘制圆弧

        paint.drawArc(rectanglen,start1,start2)

        #重新定义画笔

        pen.setWidth(2)

        pen.setStyle(Qt.SolidLine)

        paint.setPen(pen)

        paint.drawRect(50,50,20,100)

class Painterd1(QWidget):

    def __init__(self):

        super(Painterd1,self).__init__()

        self.resize(200,100)

        self.setWindowTitle(‘paint‘)

        #使用画刷

    def paintEvent(self, QPaintEvent):

        paint=QPainter(self)

        brush=QBrush(QColor(0,0,255),Qt.Dense4Pattern)#创建笔刷

        paint.setBrush(brush)#使用笔刷

        paint.drawEllipse(22,20,50,50)#椭圆

        #设置纹理

        brush.setTexture(QPixmap(r‘i/a.png‘))

        #使用四个点绘制多边形

        paint.drawPolygon(QPoint(150,100),QPoint(300,150),QPoint(350,250),QPoint(100,300))

def main():

    app = QtGui.QApplication(sys.argv)

    ex =Painterd1()

    ex.show()

    sys.exit(app.exec_())

if __name__ == ‘__main__‘:

    main()

 如图:

 其他朋友做的例子,可以学习下:http://blog.csdn.net/cxm19830125/article/details/21733377