QT:图形的描画(折线,柱状图,多边形)

1.  建立一个继承于QWidget的类,重载一个叫paintEvent的函数,数组

2.  在paintEvent函数中调用Qpainter类,此类是一个重量级类,在paintEvent函数尽可能只建立一次函数

3.  如描画柱状图:在paintEvent函数中this

    QPainter painter(this);
    QPen pen;
    pen.setColor(Qt::blue);
    pen.setWidthF(1);
    painter.setPen(pen);
    painter.drawRect(posx, posy, width, high);

这样即画出一个起始点在(posx,posy),宽为width,高为high的矩形了spa

填充能够选择QT自带的填充模式  如  code

painter.setBrush(Qt::Dense4Pattern);blog

也能够选择自定义的图片进行填充 如继承

painter.drawPixmap(posx, posy, width, high,QPixmap(PHEV_GRAPH_BAR_BLUE_PNG));图片

描画多边形,并用图片进行填充get

painter.setBrush(QBrush(QPixmap(PHEV_GRAPH_UP_GRAPH_PNG)));class

painter.drawPolygon(points, allPointNumber, Qt::WindingFill);

points:为一个QPointF数组,

allPointNumber:为总共的节点数

描画折线:知道先后两个点的位置

painter.drawLine(QPointF(x1, y1), QPointF(x2, y2));

 

Note:

paintEvent函数在类建立的时候会调一次

update()会触发paintEvent一次

repaint()也会触发paintEvent一次

相关文章
相关标签/搜索