QT新手日记035

三维图表显示

三维图表类主要有Q3DBars\Q3DScatter/Q3DSurface组成

他们基于类QAbstract3DGraph。

与QChart类似

数据类包括

QBar3DSeries/QScatter3DSeries/QSurface3DSeries

轴也是差不多

QAbstract3DAxis

包括了QCategory3DAxis和QValue3DAxis。除了多3D字母。其他的几乎相同。

有区别的时,3D图表包括一个数据代理Data Proxies。主要用于存储序列的数据的类。

图形不一样,存储的数据代理也不一样。分别有如下这些:

QBarDataProxy->QItemModelBarDataProxy

QScatterDataProxy->QItemModelScafferdataProxy

QSuffaceDataProxy->QHeightMapSurfaceDataProxy、QItemModelSurfaceDataProxy

为什么要用代理呢?

3D表示的数据很多。数据量大,必须用缓冲填充的方式使用代理是性能表现更良好。

使用3D图表需要在pro加入

QT +=...... datavisualization

引用加入

#include<QtDataVisualization>

using namespace QtDataVisualization;

下面的应用实例:

Q3DBars d3=new Q3DBars;

QValue3DAxis * value = new QValue3DAxis ;

value ->setTitle("value");

value ->setTitleVisible(true);

QCategory3DAxis *col = new QCategory3DAxis;

QCategory3DAxis *row = new QCategory3DAxis;

col->setTitle("COL");

col->setTitleVisible(true);

col->setLables({标签列表});

row->setTitle("ROW");

row->setTitleVisible(true);

row->setLabels({标签列表});

d3->setValueAxis(value);

d3->setRowAxis(row);

d3->setColumnAxis(col);

最后。要把这个东西显示在窗口上。要加点东西

//容器

QSplitter *sp=new QSplitter(Qt::Horizontal);

sp->addWidget(createWindowContainer(d3));

this->setCentralWidget(sp);

这样就可以了。

//添加数据序列

QBar3DSeries *ser = new QBar3DSeries;

ser->setMesh(QAbstract3DSeries :: MeshCylinder);

ser->setItemLabelFormat("(@rowLabel,@colLabel):$.1f");

d3->addSeries(ser);

//添加数据

QBarDataArray *dataset = new QBarDataArray;

dataset->reserve(row.count());

QBarDataRow drow=new QBarDataRow;

*drow <<1<<2<<3<<4<<5;//加入五行

dataset->append(drow);

ser->dataProxy()->resetArray(dataset);

最后主要是对数据的变化进行动态的变化。

相关推荐
lly2024062 小时前
C 标准库 - <stdlib.h>
开发语言
青川学长2 小时前
Cursor + Qt Creator 混合开发指南
开发语言·qt
嫂子开门我是_我哥2 小时前
第十五节:文件操作与数据持久化:让程序拥有“记忆”
开发语言·python
是三好2 小时前
JUC并发编程
java·开发语言
哈哈不让取名字2 小时前
分布式日志系统实现
开发语言·c++·算法
3GPP仿真实验室2 小时前
【MATLAB源码】6G:感知辅助毫米波 MIMO 信道估计仿真平台
开发语言·matlab·智能电视
catchadmin2 小时前
Laravel12 + Vue3 的免费可商用 PHP 管理后台 CatchAdmin V5.1.1 发布
开发语言·php
编程(变成)小辣鸡3 小时前
JVM、JRE和JDK 的关系
java·开发语言·jvm
a程序小傲3 小时前
得物Java面试被问:流批一体架构的实现和状态管理
java·开发语言·数据库·redis·缓存·面试·架构