QChartView餅圖


1、環境准備

.pro里:

QT += charts

頭文件:

#include <QtCharts>

2、在mainwindow.h里定義餅圖變量

QPieSeries *series;

 

3、mainwindow.cpp

series = new QPieSeries();
series->append("故障:20個", 20);
series->append("正常:80個", 80);
series->setLabelsVisible(/*false*/);
series->setLabelsPosition(QPieSlice::LabelOutside);//label位置,里面還是外面
//series->setPieStartAngle(90);//設置開始角度和結束角度
//series->setPieEndAngle(90);
//series->setPieSize(0.5);//設置餅的大小
series->setHoleSize(0.2);//設置圓洞的大小

QPieSlice *slice_red = series->slices().at(0);
QPieSlice *slice_green = series->slices().at(1);
slice_red->setColor(QColor(199,38,22));
slice_green->setColor(QColor(0,165,94));
slice_red->setLabelColor(QColor(255,255,255));
slice_green->setLabelColor(QColor(255,255,255));
//slice_red->setExploded();//展開
QFont font;
font.setPointSize(10);
slice_red->setLabelFont(font);
slice_green->setLabelFont(font);

QChart *chart = new QChart();
chart->addSeries(series);
chart->legend()->hide();
chart->setBackgroundBrush(QBrush(QColor(34,38,72)));
chart->setAnimationOptions(QChart::AllAnimations);//設置啟用或禁用動畫

QChartView *chartview = new QChartView(chart);
chartview->setRenderHint(QPainter::Antialiasing);
QVBoxLayout* layout = new QVBoxLayout;
layout->addWidget(chartview);
ui->chartview1->setLayout(layout);

 

4、效果

 

 

 

 

ps:

設置大小setPieSize感覺沒用,resize也沒有用;

這個餅圖用起來很難做布局,主要是大小不好設置,有時候label也不能顯示;

除了自己加一個通過設置layout的方式將chartview與widget綁定,也可以

chartview->setParent(ui->chartview1);

chartview->show();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM