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);

則,有類似對應的主題效果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章