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

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

相关推荐
Mr.Lu ‍几秒前
QT调试查看QT内部数据时显示无可用信息,未为 Qt5Cored.dll 加载任何符号
开发语言·qt
qq_452396233 分钟前
第九篇:《Dockerfile 指令精讲(二):WORKDIR、ENV、ARG、EXPOSE》
java·开发语言·docker
JAVA社区5 分钟前
Java高级全套教程(九)—— SpringCloud超详细实战详解
java·开发语言·后端·spring cloud·面试·职场和发展
wyjcxyyy7 分钟前
java反序列化-cc1链
java·c语言·开发语言
山上三树7 分钟前
Python 高频报错速查表(开发通用版)
开发语言·python
傻啦嘿哟11 分钟前
解决DNS污染:防止OpenClaw解析API域名到虚假地址
开发语言·php
MY_TEUCK12 分钟前
【MYTRUCK - AI 应用】MetaGPT 0.8.2 安装与排错完整实录(Python 3.10 + 虚拟环境)
开发语言·人工智能·python·ai
林森lsjs16 分钟前
【日耕一题】2. 面向对象 Java 基础:构造方法与 toString
java·开发语言
广_18 分钟前
用AI写一个Python实时硬件监控与日志可视化界面
开发语言·人工智能·python
AI算法沐枫23 分钟前
基于YOLO26深度学习的【果园荔枝检测与计数】系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
开发语言·人工智能·python·深度学习·qt·学习·机器学习