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

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

相关推荐
RAN11426760081 小时前
1.3第一个程序的介绍
开发语言·qt
blue_ice .2 小时前
Verilog DDS 数字信号发生器:DAC 输出模拟波形与 ADC 回采观测
开发语言·单片机·嵌入式硬件·fpga开发
远翔调光芯片^138287988722 小时前
ECP5702能芯科技PD取电芯片在市场上的优势有哪些?
开发语言·人工智能·单片机·嵌入式硬件·智能家居
泡海椒3 小时前
规则引擎对比:JQuick-Java vs Drools 轻量场景选型对比
java·开发语言
泡泡鱼(敲代码中)3 小时前
Python 容器类型学习笔记:列表、元组、字典、集合
开发语言·笔记·python·pycharm
2501_933670793 小时前
平台招商运营校招能力模型:数据分析、SQL与增长场景拆解
开发语言
菜鸟~noob2334 小时前
【Bonjour】华为Peerium架构深度解析:从冯·诺依曼到百万处理器“一台计算机”,附MATLAB性能仿真【含matlab代码,可直接运行】
开发语言·matlab·华为·peerium
白远山5 小时前
24小时自助健身房系统开发实战:从需求分析到完整指南
java·开发语言·数据库·数据挖掘·需求分析
shmily麻瓜小菜鸡7 小时前
TDD(测试驱动开发)详解
开发语言·javascript·typescript·node.js·ecmascript
三克的油7 小时前
java-学习1
java·开发语言·学习