Qt绘制曲线图(基于qt画图QPainter)

该代码示例展示了如何在没有QChart模块的情况下,利用QPainter和QImage在Qt环境中手动生成曲线折线图。通过创建QLabel并设置QPixmap显示自定义绘制的图像,实现了数据的图形化展示。代码中包括了坐标轴、刻度、数据点和曲线的绘制方法。

在没有QCharst模块时,可以使用QPainter自定义绘制曲线折线图

在这里插入图片描述
下面提供完整代码供参考:
直接在qt创建一个QMainWindow类的app的工程,不自动生成ui文件,然后把下面代码复制到mainwindow.cpp编译运行即可。
mainwindow.cpp:

#include "mainwindow.h"

#include <QPainter>
#include <QLabel>
#include <QImage>
#include <QPixmap>

//使用QPainter将数据到曲线画在图片中
QImage imageCurve(const QVector<int> &data1, const QVector<int> &data2);

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
   
   
    resize(800,600);

    int n=10;//n为数据个数
    QVector<int> data1;
    QVector<int> data2;

    for(int i=0;i<n;i++)//随机产生两个数据集
        data1.append(rand()%20+10);
    for(int i=0;i<n;i++)
        data2.append(rand()%30+10);

    QLabel *label = new QLabel(this);

    label->setGeometry(50,50,600,500);//将画出来到曲线显示到label上面
    label->setPixmap(QPixmap::fromImage(imageCurve(data1,data2)));
    label->show();
}

MainWindow::~MainWindow()
{
   
   

}


QImage imageCurve(const QVector<int> &data1, const QVector<int> &data2)
{
   
   
    QString x_title = "x_title";//x坐标名称
    QString y_title = "y_title";//y坐标名称
    QString title = "xx title charst";//曲线图xx名称
    QString overView = "charst: test,csdn: boonion";//图内容说明

    QString data1_name = "first";//第一条曲线名称
    QString data2_name = "second";


    QImage mimage = QImage(600,500,QImage::Format_RGB32);  //画布的初始化大小设为600*500,使用32位颜色
    QColor backColor = qRgb(255,255,255);    //画布初始化背景色使用白色
    mimage.fill(backColor);//对画布进行填充

    QPainter painter
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

boonion

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值