QT界面:QChart饼图绘制与显示

环境:Win10+VS2015+Qt5.9.7

首先创建一个Qt GUI Application。工程名:myChart。
在界面中显示图表,可以将其嵌入浮窗等,单个图表显示如下所示。

头文件

myChart.h

#pragma once

#include <QtWidgets/QMainWindow>
#include <QtWidgets/QGridLayout>
#include <QtCharts/QPieSeries>
#include <QtCharts/QChartView>

#include "ui_myChart.h"

#pragma execution_character_set("utf-8")
QT_CHARTS_BEGIN_NAMESPACE
class QChartView;
class QChart;
QT_CHARTS_END_NAMESPACE

QT_CHARTS_USE_NAMESPACE

class myChart : public QMainWindow
{
	Q_OBJECT

public:
	myChart(QWidget *parent = Q_NULLPTR);

private:
	Ui::myChartClass ui;

	QList<QChartView *> m_charts;
};

源文件

myChart.cpp

#include "myChart.h"

myChart::myChart(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);

	QGridLayout *baseLayout = new QGridLayout();
	QPieSeries *series = new QPieSeries();
	series->append("合格", 0.8)->setColor(QColor(0, 200, 200));	// 构造两个饼状分区
	series->append("不合格", 0.2)->setColor(QColor(200, 150, 0));//设置每个分区的占比与颜色
	series->setLabelsVisible();									//每个分区label显示
	QChart *chart = new QChart();
	chart->addSeries(series);
	chart->setTitle("实时统计");								
	chart->legend()->hide();									//是否显示图例
	chart->setAnimationOptions(QChart::AllAnimations); // 设置显示时的动画效果

	QChartView *chartView;										//构造图表视图
	chartView = new QChartView(chart);
	chartView->setRenderHint(QPainter::Antialiasing); //抗锯齿处理
	//chartView->chart()->setTheme(QChart::ChartThemeBlueCerulean);
	baseLayout->addWidget(chartView, 1, 0);
	m_charts << chartView;
	setLayout(baseLayout);

	QGridLayout *vlayout = new QGridLayout;
	vlayout->addLayout(baseLayout, 0, 0);
	QWidget *cornerWidget = new QWidget;
	cornerWidget->setLayout(vlayout);
	setCentralWidget(cornerWidget);
}

运行效果:

在这里插入图片描述

若直接使用表格主题设置格式,即

chartView->chart()->setTheme(QChart::ChartThemeBlueCerulean);

则,有类似对应的主题效果:
在这里插入图片描述

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值