Qt中创建饼状图
1.必要设置
.pro文件
QT += charts
头文件
#include <QtCharts>
QT_CHARTS_USE_NAMESPACE
namespace Ui {
class MainWindow;
}
2.初始化设置
void MainWindow::initPiewData()
{
QChart *chart = new QChart();//创建图表
chart->setTitle("PiewChart演示");//图表标题
ui->chartView->setChart(chart);//图表添加到场景
ui->chartView->setRenderHint(QPainter::Antialiasing);
}
3.创建
QChart *chart = ui->chartView->chart();//获取chart对象
chart->removeAllSeries();//删除序列
QPieSeries *series = new QPieSeries();//创建序列
series->setHoleSize(ui->spinHoleSize->value());//中间空心大小
PieSlice *slice;
for(int i=0;i<5;i++)
{
series->append(Rank[i],Number[2][i]);
slice = series->slices().at(i);
slice->setLabel(slice->label()+QString::asprintf(":%.0f人",slice->value()));//设置标签信息
//slice->setExploded();//该块外露可见
slice->setLabelVisible();//该块标签可见
Number[2][i] = 0;
Precent[2][i] = 0;
}
chart->addSeries(series);//序列添加到图表
chart->legend()->setAlignment(Qt::AlignLeft);//图例左侧
chart->setTheme(QChart::ChartThemeQt);//主题
chart->legend()->setFont(QFont("Arial",7));//设置图例字体及大小
特别注意饼状图设置序列需要用QPieSlice类