Qt例子学习笔记 - Examples/Qt-6.2.0/charts/donutchart

71 篇文章 4 订阅

main.cpp


#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtCharts/QChartView>
#include <QtCharts/QPieSeries>
#include <QtCharts/QPieSlice>
#include <QtCore/QDebug>
QT_USE_NAMESPACE

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

//![1]
    //饼图系列由定义为 QPieSlice 对象的切片组成。
    //切片可以有任何值
    //因为 QPieSeries 对象计算切片与系列中所有切片总和的百分比
    //以确定图表中切片的实际大小
    //图表上的饼图大小和位置通过使用范围从 0.0 到 1.0 的相对值进行控制
    //这些与实际的图表矩形有关。
    //默认情况下,饼图定义为完整饼图。
    //可以通过设置系列的起始角度和角度跨度来创建部分饼图。
    //一个完整的馅饼是 360 度,其中 0 是 12 点钟。
    QPieSeries *series = new QPieSeries();
    //此属性保存甜甜圈孔的大小。
    //该值是相对于图表矩形的,因此:
    //0.0 是最小尺寸(绘制的没有洞的完整饼图)。
    //1.0 是可以容纳图表的最大尺寸(甜甜圈没有宽度)。
    //设置此属性时,会根据需要调整大小属性,以确保孔大小不大于饼图大小。
    series->setHoleSize(0.35);
    //QPieSlice *QPieSeries::append(const QString &label, qreal value)
    //将具有指定值和标签的单个切片附加到系列。
    //切片所有权传递给系列。
    //如果值为 NaN、Inf 或 -Inf,则返回 null 并且不向系列添加任何内容。
    series->append("Protein 4.2%", 4.2);
    QPieSlice *slice = series->append("Fat 15.6%", 15.6);
    //此属性保存切片是否与饼图分离。
    slice->setExploded();
    //此属性保存切片标签的可见性。 默认情况下,标签不可见。
    slice->setLabelVisible();
    series->append("Other 23.8%", 23.8);
    series->append("Carbs 56.4%", 56.4);
//![1]

//![2]
    //QChartView 是一个独立的小部件,可以显示图表
    QChartView *chartView = new QChartView();
    chartView->setRenderHint(QPainter::Antialiasing);
    chartView->chart()->setTitle("Donut with a lemon glaze (100g)");
    chartView->chart()->addSeries(series);
    chartView->chart()->legend()->setAlignment(Qt::AlignBottom);
    chartView->chart()->setTheme(QChart::ChartThemeBlueCerulean);
    chartView->chart()->legend()->setFont(QFont("Arial", 7));
//![2]

//![3]
    QMainWindow window;
    window.setCentralWidget(chartView);
    window.resize(400, 300);
    window.show();
//![3]

    return a.exec();
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值