Qt之2D绘图

2D绘图

Qt4中的2D绘图部分称为Arthur绘图系统.它由3个类支撑整个框架,QPainterQPainterDeviceQPainterEngineQPainter用来执行具体的绘图相关操作如画点,画线,填充,变换,alpha通道等。QPainterDeviceQPainter用来绘图的绘图设备,Qt中有几种预定义的绘图设备,如QWidget,QPixamp,QPrinter他们都从QPaintDevice继承。QPaintEngine类提供了不同类型设备的接口,QPaintEngine对程序员不透明,由QPainterQPaintDevice类与其进行交互。从Qt4.2开始,Graphics View框架取代了QCanvas,QGraphics View框架使用了MVC模式,适合对大量2D图元的管理,Grphics View框架中,场景(scene)存储了图形数据,它通过视图(view)以多种表现形式,每个图元(item)可以单独进行控制

Arthur绘图系统

Qt4中的2D绘图部分称为Arthur绘图系统.它由3个类支撑整个框架,QPainter,QPainterDeviceQPainterEngine.QPainter用来执行具体的绘图相关操作如画点,画线,填充,变换,alpha通道等。

Arthur绘图框架中的基本元素是画笔,画刷。QPainter类具有GUI程序需要的绝大多数函数,能够绘制基本图形(点,线,矩形,多边形等)以及复杂的图形(如绘图路径).使用绘图路径(QPaintPath)的优点是复杂形状的图形只用生成一次,以后再使用的时候是需要调用QPainter::drawPath()就可以了。QPainterPath对象可以用来填充,绘制轮廓。线和轮廓都可以用画笔(QPen)进行绘制,画刷(QBrush)进行填充。画笔定义了风格(线形),宽度,笔尖画刷以及端点是如何绘制的端点的连接方式画刷用来填充画笔绘制的图形,可以定制不同的填充模式和颜色的画刷。当绘制文字时,字体使用QFont类定义,Qt使用指定字体的属性,如果没有匹配的字体,Qt将使用最接近的字体。字体属性可以通过QFontInfo来获取。使用时需要传入一个字体对象QFont

字体的度量(measurement):使用QFontMetrics类来获取。

QPainter的绘图函数

___________________________________________________________________________

drawArc()                                

drawChord()                              

drawConvexPolygon()                      凸多边形

drawEllipse()                             椭圆

drawImage()                              QImage表示的图像

drawLine()                               线

drawLines()                              多条线

drawPath()                               路径

drawPicture()                             QPainter指令绘制

drawPie()                                扇形

drawPixmap()                             QPixmap表示的图像

drawPoint()                               

drawPoints()                              多个点

drawPolygon()                            多边形

drawPolyline()                            多折线

drawRect()                                矩形

drawRects()                               多个矩形

drawRoundRect()                           圆角矩形

drawText()                                文本(有多个重载)

drawTiledPixmap()                         平铺图像

drawLineSegments()                        绘制折线


你可能感兴趣的:(C++,qt,绘图,2d,坐标转换)