• QChartView绘制饼状图


    效果图:

    #include "mainwindow.h"
    #include "form.h"
    #include <QApplication>
    #include <QtCharts>
    #include <QPieSeries>
    #include <QVector>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
    
    
        QVector<int> vector_monitNumber;
        vector_monitNumber.append(5);
        vector_monitNumber.append(5);
        vector_monitNumber.append(5);
        vector_monitNumber.append(5);
        vector_monitNumber.append(5);
        vector_monitNumber.append(5);
        vector_monitNumber.append(10);
        vector_monitNumber.append(4);
        vector_monitNumber.append(4);
        vector_monitNumber.append(2);
        vector_monitNumber.append(50);
        vector_monitNumber.append(0);
    
        int sum = 0;
        for(int i=0;i<vector_monitNumber.size();i++)
        {
            sum += vector_monitNumber.at(i);
        }
    
    
        int float_month1 = vector_monitNumber.at(0)*100/sum;
        QPieSlice *slice1 = new QPieSlice(QString(""), float_month1);
        //slice1->setLabelVisible(true);
        slice1->setLabel(QString("1月份%1").arg(vector_monitNumber.at(0)));
        //slice1->setLabelColor(Qt::yellow);
        slice1->setLabelVisible();
        //slice1->setLabelColor(Qt::white);
        slice1->setLabelPosition(QPieSlice::LabelOutside);
    
        //slice1->setLabelPosition(QPieSlice::LabelInsideTangential);
        slice1->setBrush(QColor(59,160,255));
    
        QPieSlice *slice2 = new QPieSlice(QString(""), 5);
        slice2->setLabelVisible(true);
        slice2->setLabel(QString("2月份%1").arg(vector_monitNumber.at(1)));
        //slice2->setLabelColor(Qt::red);
        //slice2->setLabelPosition(QPieSlice::LabelInsideTangential);
        slice2->setBrush(QColor(55,203,203));
    
        QPieSlice *slice3 = new QPieSlice(QString(""), 5);
        slice3->setLabelVisible(true);
    //    slice3->setLabelColor(Qt::blue);
        slice3->setLabel(QString("3月份%1").arg(vector_monitNumber.at(2)));
        slice3->setLabelPosition(QPieSlice::LabelOutside);
        slice3->setBrush(QColor(78,203,116));
    
        QPieSlice *slice4 = new QPieSlice(QString(""), 5);
        slice4->setLabelVisible(true);
    //    slice3->setLabelColor(Qt::blue);
        slice4->setLabel(QString("4月份%1").arg(vector_monitNumber.at(3)));
        slice4->setLabelPosition(QPieSlice::LabelOutside);
        slice4->setBrush(QColor(250,211,55));
    
        QPieSlice *slice5 = new QPieSlice(QString(""), 5);
        slice5->setLabelVisible(true);
    //    slice3->setLabelColor(Qt::blue);
        slice5->setLabel(QString("5月份%1").arg(vector_monitNumber.at(4)));
        slice5->setLabelPosition(QPieSlice::LabelOutside);
        slice5->setBrush(QColor(249,99,123));
    
        QPieSlice *slice6 = new QPieSlice(QString(""), 5);
        slice6->setLabelVisible(true);
    //    slice3->setLabelColor(Qt::blue);
        slice6->setLabel(QString("6月份%1").arg(vector_monitNumber.at(5)));
        slice6->setLabelPosition(QPieSlice::LabelOutside);
        slice6->setBrush(QColor(151,95,228));
    
        QPieSlice *slice7 = new QPieSlice(QString(""), 10);
        slice7->setLabelVisible(true);
        slice7->setLabel(QString("7月份%1").arg(vector_monitNumber.at(6)));
        slice7->setLabelPosition(QPieSlice::LabelOutside);
        slice7->setBrush(QColor(151,95,228));
    
        QPieSlice *slice8 = new QPieSlice(QString(""), 4);
        slice8->setLabelVisible(true);
        slice8->setLabel(QString("8月份%1").arg(vector_monitNumber.at(7)));
        slice8->setLabelPosition(QPieSlice::LabelOutside);
        slice8->setBrush(QColor(151,95,228));
    
        QPieSlice *slice9 = new QPieSlice(QString(""), 4);
        slice9->setLabelVisible(true);
        slice9->setLabel(QString("9月份%1").arg(vector_monitNumber.at(8)));
        slice9->setLabelPosition(QPieSlice::LabelOutside);
        slice9->setBrush(QColor(151,95,228));
    
        QPieSlice *slice10 = new QPieSlice(QString(""), 2);
        slice10->setLabelVisible(true);
        slice10->setLabel(QString("10月份%1").arg(vector_monitNumber.at(9)));
        slice10->setLabelPosition(QPieSlice::LabelOutside);
        slice10->setBrush(QColor(151,95,228));
    
        QPieSlice *slice11 = new QPieSlice(QString(""), 50);
        slice11->setLabelVisible(true);
        slice11->setLabel(QString("11月份%1").arg(vector_monitNumber.at(10)));
        slice11->setLabelPosition(QPieSlice::LabelOutside);
        slice11->setBrush(QColor(151,95,228));
    
        QPieSlice *slice12 = new QPieSlice(QString(""), 0);
        slice12->setLabelVisible(true);
        slice12->setLabel(QString("12月份%1").arg(vector_monitNumber.at(11)));
        slice12->setLabelPosition(QPieSlice::LabelOutside);
        slice12->setBrush(QColor(151,95,228));
    
    
    
        QPieSeries *series = new QPieSeries();
    
        //饼图中间空心的大小
        series->setHoleSize(0.35);
    //    series->append("Protein 4.2%", 4.2);
    //    series->append("Carbs 56.4%", 56.4);
    //    series->append("Other 23.8%", 23.8);
    
        series->append(slice1);
        series->append(slice2);
        series->append(slice3);
        series->append(slice4);
        series->append(slice5);
        series->append(slice6);
        series->append(slice7);
        series->append(slice8);
        series->append(slice9);
        series->append(slice10);
        series->append(slice11);
        series->append(slice12);
    
    
        QChartView *chartView = new QChartView();
        chartView->setRenderHint(QPainter::Antialiasing);
        //chartView->chart()->setTitle("DonutChart Example");
        chartView->chart()->addSeries(series);
        chartView->chart()->legend()->setAlignment(Qt::AlignRight);
        //chartView->chart()->setTheme(QChart::ChartThemeBlueCerulean);
        //chartView->chart()->legend()->setFont(QFont("Arial",7));
        //chartView->chart()->legend()->setVisible(false);
    
    
    
        MainWindow w;
        w.resize(600, 600);
        w.setCentralWidget(chartView);
        w.show();
    
    
    
    
        return a.exec();
    }
  • 相关阅读:
    反射API(二)
    反射API(一)
    session一二事
    自定义session的存储机制
    JavaScript 入门笔记
    PHP引用赋值
    九九乘法口诀表
    PHP流程控制笔记
    PHP函数总结 (七)
    Linux程序编辑器习题汇总
  • 原文地址:https://www.cnblogs.com/zhangxuan/p/10190620.html
Copyright © 2020-2023  润新知