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();
vector_monitNumber.append();
vector_monitNumber.append();
vector_monitNumber.append();
vector_monitNumber.append();
vector_monitNumber.append();
vector_monitNumber.append();
vector_monitNumber.append();
vector_monitNumber.append();
vector_monitNumber.append();
vector_monitNumber.append();
vector_monitNumber.append(); int sum = ;
for(int i=;i<vector_monitNumber.size();i++)
{
sum += vector_monitNumber.at(i);
} int float_month1 = vector_monitNumber.at()*/sum;
QPieSlice *slice1 = new QPieSlice(QString(""), float_month1);
//slice1->setLabelVisible(true);
slice1->setLabel(QString("1月份%1").arg(vector_monitNumber.at()));
//slice1->setLabelColor(Qt::yellow);
slice1->setLabelVisible();
//slice1->setLabelColor(Qt::white);
slice1->setLabelPosition(QPieSlice::LabelOutside); //slice1->setLabelPosition(QPieSlice::LabelInsideTangential);
slice1->setBrush(QColor(,,)); QPieSlice *slice2 = new QPieSlice(QString(""), );
slice2->setLabelVisible(true);
slice2->setLabel(QString("2月份%1").arg(vector_monitNumber.at()));
//slice2->setLabelColor(Qt::red);
//slice2->setLabelPosition(QPieSlice::LabelInsideTangential);
slice2->setBrush(QColor(,,)); QPieSlice *slice3 = new QPieSlice(QString(""), );
slice3->setLabelVisible(true);
// slice3->setLabelColor(Qt::blue);
slice3->setLabel(QString("3月份%1").arg(vector_monitNumber.at()));
slice3->setLabelPosition(QPieSlice::LabelOutside);
slice3->setBrush(QColor(,,)); QPieSlice *slice4 = new QPieSlice(QString(""), );
slice4->setLabelVisible(true);
// slice3->setLabelColor(Qt::blue);
slice4->setLabel(QString("4月份%1").arg(vector_monitNumber.at()));
slice4->setLabelPosition(QPieSlice::LabelOutside);
slice4->setBrush(QColor(,,)); QPieSlice *slice5 = new QPieSlice(QString(""), );
slice5->setLabelVisible(true);
// slice3->setLabelColor(Qt::blue);
slice5->setLabel(QString("5月份%1").arg(vector_monitNumber.at()));
slice5->setLabelPosition(QPieSlice::LabelOutside);
slice5->setBrush(QColor(,,)); QPieSlice *slice6 = new QPieSlice(QString(""), );
slice6->setLabelVisible(true);
// slice3->setLabelColor(Qt::blue);
slice6->setLabel(QString("6月份%1").arg(vector_monitNumber.at()));
slice6->setLabelPosition(QPieSlice::LabelOutside);
slice6->setBrush(QColor(,,)); QPieSlice *slice7 = new QPieSlice(QString(""), );
slice7->setLabelVisible(true);
slice7->setLabel(QString("7月份%1").arg(vector_monitNumber.at()));
slice7->setLabelPosition(QPieSlice::LabelOutside);
slice7->setBrush(QColor(,,)); QPieSlice *slice8 = new QPieSlice(QString(""), );
slice8->setLabelVisible(true);
slice8->setLabel(QString("8月份%1").arg(vector_monitNumber.at()));
slice8->setLabelPosition(QPieSlice::LabelOutside);
slice8->setBrush(QColor(,,)); QPieSlice *slice9 = new QPieSlice(QString(""), );
slice9->setLabelVisible(true);
slice9->setLabel(QString("9月份%1").arg(vector_monitNumber.at()));
slice9->setLabelPosition(QPieSlice::LabelOutside);
slice9->setBrush(QColor(,,)); QPieSlice *slice10 = new QPieSlice(QString(""), );
slice10->setLabelVisible(true);
slice10->setLabel(QString("10月份%1").arg(vector_monitNumber.at()));
slice10->setLabelPosition(QPieSlice::LabelOutside);
slice10->setBrush(QColor(,,)); QPieSlice *slice11 = new QPieSlice(QString(""), );
slice11->setLabelVisible(true);
slice11->setLabel(QString("11月份%1").arg(vector_monitNumber.at()));
slice11->setLabelPosition(QPieSlice::LabelOutside);
slice11->setBrush(QColor(,,)); QPieSlice *slice12 = new QPieSlice(QString(""), );
slice12->setLabelVisible(true);
slice12->setLabel(QString("12月份%1").arg(vector_monitNumber.at()));
slice12->setLabelPosition(QPieSlice::LabelOutside);
slice12->setBrush(QColor(,,)); 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(, );
w.setCentralWidget(chartView);
w.show(); return a.exec();
}
QChartView绘制饼状图的更多相关文章
- 用PNChart绘制饼状图简介
写在前面 最近做的小Demo中有一个绘制饼状图的需求.在开始实现之前上网了解了一下现有的一些绘制图形的第三方库,相应的库还是有挺多的,PNChart便是其中一个.PNChart是一个90后的中国boy ...
- 第166天:canvas绘制饼状图动画
canvas绘制饼状图动画 1.HTML <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- Canvas(3)---绘制饼状图
Canvas(3)---绘制饼状图 有关canvas之前有写过两篇文章 1.Canvas(1)---概述+简单示例 2.Canvas(2)---绘制折线图 在绘制饼状图之前,我们先要理解什么是圆弧,如 ...
- canvas动态绘制饼状图,
当我们使用Echrts很Highcharts的时候,总是觉得各种统计图表是多么神奇,今天我就用现代浏览器支持的canvas来绘制饼状统计图,当然仅仅是画出图并没什么难度,但是统计图一般都有输入,根据不 ...
- [canvas]用canvas绘制饼状图
折线图之后又来饼状图啦~\(≧▽≦)/~啦啦啦 <!DOCTYPE html> <html lang="en"> <head> <meta ...
- IOS之以UIBezierPath绘制饼状图
1.绘制的饼状图是通过多个扇形拼和而成,绘制一个扇形也是比较简单的,核心代码如下: 先画一条圆弧,再画半径,接着再画一条圆弧,最后闭合路径: UIBezierPath* aPath = [[UIBe ...
- [Echarts]用Echarts绘制饼状图
在项目网站的网页中,有这样一幅图: 心血来潮,想使用百度Echarts来绘制一下,可是没能绘制得完全一样,Echarts饼状图的label不能在图形下面放成一行,最后的效果是这样子的: 鼠标移动到it ...
- d3绘制饼状图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- matplotlib绘制饼状图
源自http://blog.csdn.net/skyli114/article/details/77508430?ticket=ST-41707-PzNbUDGt6R5KYl3TkWDg-passpo ...
随机推荐
- 强迫症犯了,忍不住赞一下slf4j包Logger.java的优雅代码
如下是slf4j-api包下的Logger接口类里其中几个方法的声明: package org.slf4j; public interface Logger { /** * Log a message ...
- eclispe集成Scalas环境后,导入外部Spark包报错:object apache is not a member of package org
在Eclipse中集成scala环境后,发现导入的Spark包报错,提示是:object apache is not a member of package org,网上说了一大推,其实问题很简单: ...
- 无需激活直接同步登入discuz,php代码(直接可用)
<?php /** * 抽奖 * @param int $total */ function getReward($total=1000) { $win1 = floor((0.12*$tota ...
- 即时通讯(III)
即时通讯的开源库 目前及时通讯可以使用环信.柔云.腾讯云,这些都是基于TCP连接的,UI也是高度定制的,而且它们的技术也是比较成熟的. XMPP比较早,是开源的,但是坑也比较多.传输的数据是XML,造 ...
- vue mand-mobile按2.0文档默认安装的是1.6.8版本
vue mand-mobile按2.0文档默认安装的是1.6.8版本 npm list mand-mobilebigbullmobile@1.0.0 E:\webcode\bigbullmobile` ...
- 连接redis错误:ERR Client sent AUTH, but no password is set
问题原因:没有设置redis的密码 解决:命令行进入Redis的文件夹: D:\Redis-x64-3.2.100>redis-cli.exe 查看是否设置了密码: 127.0.0.1:6379 ...
- Docker Macvlan 应用部署
Docker Macvlan 应用部署 MacVLAN有两种桥接模式 Bridge模式:不创建子接口的情况下直接去桥接物理接口.直接桥接到与宿主级的同网段. VLAN Bridge模式:创建子接口去桥 ...
- nmon监控数据分析
性能测试中,各个服务器资源占用统计分析是一个很重要的组成部分,通常我们使用nmon这个工具来进行监控以及监控结果输出. 一. 在监控阶段使用类似下面的命令 ./nmon -f write_3s_20v ...
- 第二次作业-git的基本操作
作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 一.修改用户名和邮箱地址: (1)配置用户名命令:$git ...
- hdoj1905 Pseudoprime numbers (基础数论)
Problem Description Fermat's theorem states that for any prime number p and for any integer a > 1 ...