首页 > 代码库 > 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 像素宽轮廓线、蓝色填
充的椭圆。
"""
如图: