【QT】利用QTChart绘制折线图、饼图、极地图

在以前文章中介绍了QtCharts的简单使用:https://blog.csdn.net/qq_42449351/article/details/99954436,今天我们就来用Charts绘制折线图、饼图、极地图。

同样要先在.pro文件中添加charts库, QT  +=  charts; 在界面中添加Graphics View组件, 作为Chart的载体, 将该组件提升为QtCharts::QChartView。如有不明白,可以跳转至上面的Qtcharts的简单使用

效果图

通过三个按钮的点击事件,触发相应的绘图。

       

折线图代码:

//折线图
void MainWindow::LineChart()
{
    QLineSeries *series = new QLineSeries();
    series->append(0, 6);
    series->append(2, 4);
    series->append(3, 8);
    series->append(7, 4);
    series->append(10, 5);


    QChart *chart = new QChart();
    chart->legend()->hide();
    chart->addSeries(series);
    chart->createDefaultAxes();
    chart->setTitle("折线图");

    ui->graphicsView->setChart(chart);
    ui->graphicsView->setRenderHint(QPainter::Antialiasing);   //抗锯齿处理

}

饼图代码:

//饼图
void MainWindow::PieChart()
{
    QPieSeries *series = new QPieSeries();
    series->append("正常", 0.8)->setColor(QColor(0,200,200));
    series->append("超标", 0.2)->setColor(QColor(200,150,0));
    series->setLabelsVisible();

    QChart *chart = new QChart();
    chart->legend()->hide();   //是否显示图例
    chart->addSeries(series);
    chart->setAnimationOptions(QChart::AllAnimations);
    chart->createDefaultAxes();
    chart->setTitle("饼图");

    ui->graphicsView->setChart(chart);
    ui->graphicsView->setRenderHint(QPainter::Antialiasing);   //抗锯齿处理
}

极地图代码:

//极地图
void MainWindow::PolarChart()
{
    //曲线
    QLineSeries *seriesWD = new QLineSeries();
    seriesWD->setName("WD");
    //图
    QPolarChart *chartWD = new QPolarChart();
    chartWD->legend()->hide();
    chartWD->addSeries(seriesWD);
    chartWD->setTheme(QChart::ChartThemeBlueCerulean);
    chartWD->setTitle("极地图");
    //坐标轴
    QValueAxis *angleAxis = new QValueAxis();    //角坐标
    angleAxis->setTickCount(11);
    angleAxis->setLabelFormat("%d");
    angleAxis->setShadesVisible(true);
    angleAxis->setShadesBrush(QBrush(QColor(249,249,255)));
    chartWD->addAxis(angleAxis, QPolarChart::PolarOrientationAngular);

    QValueAxis *radiaAxis = new QValueAxis();
    radiaAxis->setTickCount(11);
    radiaAxis->setLabelFormat("%d");
    chartWD->addAxis(radiaAxis, QPolarChart::PolarOrientationRadial);
    seriesWD->attachAxis(radiaAxis);
    seriesWD->attachAxis(angleAxis);

    //赋值
    for(int i=0; i<=360; i+=10) {
        seriesWD->append(i, i+10);
    }
    radiaAxis->setRange(0,200);
    angleAxis->setRange(0,360);
    ui->graphicsView->setChart(chartWD);
    ui->graphicsView->setRenderHint(QPainter::Antialiasing);   //抗锯齿处理
}

之后会继续更新利用QTChart绘制各种图形,三维图尽请期待!!源代码已上传!

源代码:https://download.csdn.net/download/qq_42449351/12611073

 

问题咨询及项目源码请加群:

QQ群

名称:IT项目交流群

群号:245022761

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值