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一次

相關文章
相關標籤/搜索