zoukankan      html  css  js  c++  java
  • QT:图形的描画(折线,柱状图,多边形)

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

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

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

        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的矩形了

    填充可以选择QT自带的填充模式  如 

    painter.setBrush(Qt::Dense4Pattern);

    也可以选择自定义的图片进行填充 如

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

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

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

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

    points:为一个QPointF数组,

    allPointNumber:为总共的节点数

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

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

    Note:

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

    update()会触发paintEvent一次

    repaint()也会触发paintEvent一次

  • 相关阅读:
    作业5,6 2019/10/23
    作业1、2、3、4 2019/10/23
    实现Map传参Mybatis
    maven工程配置pom.xml实现mybatis的访问数据库操作
    测试
    Postman篇之命令行测试
    unittest框架
    测试
    测试
    测试
  • 原文地址:https://www.cnblogs.com/qianqiannian/p/9585649.html
Copyright © 2011-2022 走看看