首页 > 代码库 > QT绘制系统简介

QT绘制系统简介

#3个类:QPainter,QPainterDevice 和 QPaintEngine 三个类

#qpainter用于执行绘制操作

#QPainterDevice是一个二维空间抽象,允许qpainter在其上面进行绘制,也就是qpainter工作空间

#QPaintEngine 提供了画笔(qpainter)在不同设备上进行绘制统一接口,QPaintEngine类应用于QPainter和QPaintDevice 之间,如果需要自定义一个设备时

#则不需要关心QPaintEngine 这个类的QPainter 理解成画笔;把 QPaintDevice理解成使用画笔的地方,比如纸张、屏幕等;而对于纸张、屏幕而言,肯定要使用不同的画

# 笔绘制,为了统一使用一种画笔,我们设计了 QPaintEngine 类,这个类让不同的纸张、屏幕都能使用一种画笔。

#API:QPainter-QPaintEngine -QPaintDevice:含义:使用 QPainter 在QPainterDevice 上进行绘制,它们之间使用 QPaintEngine 进行通讯

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(800,600)

        self.setWindowTitle(‘paint‘)

 

    def paintEvent(self, e):

        paint=QPainter(self)

        paint.drawLine(80,100,650,500)

        paint.setPen(Qt.red)

        paint.drawRect(10,10,100,400)

        paint.setPen(QPen(Qt.green,5))

        paint.setBrush(Qt.blue)

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

def main():

    app = QtGui.QApplication(sys.argv)

    ex = Painterd()

    ex.show()

    sys.exit(app.exec_())

if __name__ == ‘__main__‘:

    main()

 

#注意:

"""

很多draw开头的函数,用于各种图形绘制,比如*Line(),*Rect(),*Ellipse(),当绘制轮廓时,使用pen()属性,调用了 painter.setPen(Qt::red)将  pen  设置为红色

pen  修改为绿色, 5  像素宽(painter.setPen(QPen(Qt::green,  5))),

又设置了画刷为蓝色。这时候再调用  draw  函数,则是具有绿色  5  像素宽轮廓线、蓝色填

充的椭圆。

"""

如图: