欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt QChart 創(chuàng)建圖表的實(shí)現(xiàn)方法

 更新時(shí)間:2020年12月23日 09:40:04   作者:咸魚Doyoung  
這篇文章主要介紹了Qt QChart 創(chuàng)建圖表的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

本文主要介紹了Qt QChart 創(chuàng)建圖表,分享給大家,也給自己留個(gè)筆記,廢話不多說(shuō),具體如下:

效果

流程

代碼

1. 餅圖

// 保存多個(gè)扇形
	QList<QPieSlice *> slices;
	for (int i = 1; i <= 10; ++i)
	{
		// 創(chuàng)建一個(gè)扇形
		QPieSlice * slice = new QPieSlice(QString::number(i),i);
		slices << slice;
	}
	// 創(chuàng)建一個(gè)餅圖系列
	QPieSeries * pieSeries = new QPieSeries;
	// 當(dāng)鼠標(biāo)懸浮時(shí)設(shè)置標(biāo)簽可見,設(shè)置餅圖扇形分離
	QObject::connect(pieSeries,&QPieSeries::hovered
		, [](QPieSlice *slice, bool state) {
		slice->setLabelVisible(state);
		slice->setExploded(state);
	});
	// 將所有扇形所加到餅圖中
	pieSeries->append(slices);

	// 創(chuàng)建一個(gè)圖表
	QChart * chart = new QChart;
	// 設(shè)置標(biāo)題
	chart->setTitle(QStringLiteral("餅圖"));
	// 設(shè)置動(dòng)畫
	chart->setAnimationOptions(QChart::AllAnimations);
	// 設(shè)置圖表的系列
	chart->addSeries(pieSeries);

	// 創(chuàng)建圖表視圖,顯示圖表
 pView = new QChartView(chart);
	// 設(shè)置抗鋸齒
	pView->setRenderHint(QPainter::Antialiasing);

	// 添加圖表視圖到布局
 QVBoxLayout *layout = new QVBoxLayout(this);
 layout->addWidget(pView);

2. 柱圖

// 保存柱集合
	QList<QBarSet *> sets;
	for (int i = 1; i <= 5; ++i)
	{
		// 創(chuàng)建一個(gè)柱集合
		QBarSet * set = new QBarSet(QString("set").append(QString::number(i)));
		QList<qreal> values;
		for (int j = 1; j <= 5; ++j)
		{
			values << qrand()%100;
			qDebug() << values;
		}
		set->append(values);
		sets << set;
	}
	// 創(chuàng)建一個(gè)柱圖系列
	QBarSeries * barSeries = new QBarSeries;
	// 添加柱集合
	barSeries->append(sets);

	QChart * chart = new QChart;
	chart->setTitle(QStringLiteral("柱狀圖"));
	chart->setAnimationOptions(QChart::AllAnimations);
	chart->addSeries(barSeries);

	pView = new QChartView(chart);
	pView->setRenderHint(QPainter::Antialiasing);

	QVBoxLayout *layout = new QVBoxLayout(this);
	layout->addWidget(pView);

3. 折/曲線圖

// 創(chuàng)建并保存點(diǎn)信息
	QList<QPointF> points;
	points << QPointF(0, -1) << QPointF(2, 2) << QPointF(3, 5) << QPointF(5, -5)
		<< QPointF(6, 0) << QPointF(7, 3);

	// 創(chuàng)建線圖系列
	QLineSeries * lineSeries = new QLineSeries;
	// 曲線
	//QSplineSeries * lineSeries = new QSplineSeries;
	
	// 追加點(diǎn)
	lineSeries->append(points);

	QChart * chart = new QChart;
	chart->setTitle(QStringLiteral("線圖"));
	chart->setAnimationOptions(QChart::AllAnimations);
	chart->addSeries(lineSeries);

	pView = new QChartView(chart);
	pView->setRenderHint(QPainter::Antialiasing);

	QVBoxLayout *layout = new QVBoxLayout(this);
	layout->addWidget(pView);

4. 區(qū)域圖

QList<QPointF> pointsLower;
	pointsLower << QPointF(0, -1) << QPointF(2, 2) << QPointF(3, 5) << QPointF(5, -5)
		<< QPointF(6, 0) << QPointF(7, 3);
	// 創(chuàng)建一條線
	QLineSeries * lineSeriesLower = new QLineSeries;
	lineSeriesLower->append(pointsLower);

	QList<QPointF> pointsUpper;
	pointsUpper << QPointF(0, -1) << QPointF(2, 4) << QPointF(3, 3) << QPointF(5, 3)
		<< QPointF(6, 1) << QPointF(7, 5);
	// 創(chuàng)建另一條線
	QLineSeries * lineSeriesUpper = new QLineSeries;
	lineSeriesUpper->append(pointsUpper);

	// 兩條線組成面
	QAreaSeries * areaSeries = new QAreaSeries(lineSeriesLower, lineSeriesUpper);

	QChart * chart = new QChart;
	chart->setTitle(QStringLiteral("區(qū)域圖"));
	chart->setAnimationOptions(QChart::AllAnimations);
	chart->addSeries(areaSeries);

	pView = new QChartView(chart);
	pView->setRenderHint(QPainter::Antialiasing);

	QVBoxLayout *layout = new QVBoxLayout(this);
	layout->addWidget(pView);

到此這篇關(guān)于Qt QChart 創(chuàng)建圖表的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)Qt QChart 創(chuàng)建圖表 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語(yǔ)言實(shí)現(xiàn)繪制可愛的橘子鐘表

    C語(yǔ)言實(shí)現(xiàn)繪制可愛的橘子鐘表

    這篇文章主要為大家詳細(xì)介紹了如何利用C語(yǔ)言實(shí)現(xiàn)繪制可愛的橘子鐘表,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的可以了解一下
    2022-12-12
  • C++實(shí)現(xiàn)單例模式的自動(dòng)釋放

    C++實(shí)現(xiàn)單例模式的自動(dòng)釋放

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)單例模式的自動(dòng)釋放,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C語(yǔ)言中如何判斷質(zhì)數(shù)

    C語(yǔ)言中如何判斷質(zhì)數(shù)

    這篇文章主要介紹了C語(yǔ)言中的判斷質(zhì)數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • C語(yǔ)言?const修飾普通變量和指針的操作代碼

    C語(yǔ)言?const修飾普通變量和指針的操作代碼

    這篇文章主要介紹了C語(yǔ)言const修飾普通變量和指針,用const修飾普通變量時(shí),是在語(yǔ)法層面限制了變量的修改,但是本質(zhì)上,變量還是變量,是一種不能被修改的變量,本文通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • linux之sed命令的用法

    linux之sed命令的用法

    sed是一個(gè)很好的文件處理工具,本身是一個(gè)管道命令,主要是以行為單位進(jìn)行處理,可以將數(shù)據(jù)行進(jìn)行替換、刪除、新增、選取等特定工作,下面先了解一下sed的用法
    2013-10-10
  • Qt?TCP網(wǎng)絡(luò)通信學(xué)習(xí)

    Qt?TCP網(wǎng)絡(luò)通信學(xué)習(xí)

    用于數(shù)據(jù)傳輸?shù)牡蛯泳W(wǎng)絡(luò)協(xié)議,多個(gè)物聯(lián)網(wǎng)協(xié)議都是基于TCP協(xié)議的,這篇文章為大家介紹了Qt?TCP網(wǎng)絡(luò)通信,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C語(yǔ)言Tinyhttpd服務(wù)器源碼剖析

    C語(yǔ)言Tinyhttpd服務(wù)器源碼剖析

    這篇文章主要為大家介紹了C語(yǔ)言Tinyhttpd服務(wù)器源碼剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • C++動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)查找最長(zhǎng)公共子序列

    C++動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)查找最長(zhǎng)公共子序列

    這篇文章主要介紹了C++動(dòng)態(tài)規(guī)劃最長(zhǎng)公共子序列,在動(dòng)態(tài)規(guī)劃中,你要將某個(gè)指標(biāo)最大化。在這個(gè)例子中,你要找出最長(zhǎng)公共子序列
    2022-06-06
  • C++小知識(shí):不要節(jié)約代碼行數(shù)

    C++小知識(shí):不要節(jié)約代碼行數(shù)

    今天小編就為大家分享一篇關(guān)于C++小知識(shí):不要節(jié)約代碼行數(shù),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • VC++6.0實(shí)現(xiàn)直線掃描轉(zhuǎn)換的圖文教程

    VC++6.0實(shí)現(xiàn)直線掃描轉(zhuǎn)換的圖文教程

    這篇文章主要給大家介紹了關(guān)于VC++6.0實(shí)現(xiàn)直線掃描轉(zhuǎn)換的相關(guān)資料,文中通過(guò)圖文將實(shí)現(xiàn)的步驟一步步介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用VC++6.0具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-01-01

最新評(píng)論