技术小新 | Qt开发指南之Data Visualization模块解读

今天我们为大家介绍Data Visualization模块,而在前一期已经讲解过Qt Charts模块,如果说Qt Charts是一个2D界面,那我们这期要讲的Data Visualization模块,妥妥是一个3D数据可视化界面。 Data Visualization 是Qt提供的用于数据三维显示的模块,Qt5.7以后此模块可免费使用。Data Visualization用于数据的三维显示,包括三维柱状图、三维空间散点等。Data Visualization与Qt Charts类似,也是基于Qt的图形视图框架。

Data Visualization的三维显示功能主要由3种三维图形类来实现,分别是:三维柱状图类Q3Dbars、三维空间散点类Q3DScatter、三维曲面类Q3DSuface。而这3种图形类的父类是QAbstract3DGraph,由Qwindow继承而来。

file Data Visualization与Qt Charts类似,都基于Qt的图形视图结构,因此一个三维图形也是由图表、序列、坐标轴等元素组成。Q3DBars、Q3DScatter、 Q3DSurface相当于Qt charts 中的QChart,而每一种三维图形对应1种三维序列。 file 一种序列类只能用于某种三维图形类,如QBar3DSeries只能用作三维柱状图Q33DBars的序列,而不能作为三维散点图的序列。而一个图中可以有存在多个同类型的序列,用于显示不同的曲面。 与QChart有坐标轴类一样,三维图形也有坐标轴类。分为:QValue3DAxis(用于数值型坐标轴)、QCategory3DAxis(用于文字型坐标轴),且都继承自QAbstract3DAxis。 file Data Visualization模型中有数据代理类,数据代理类就是与序列对应,用于存储序列的数据的类。因三维图形类型不一样,存储数据的结构也不一样。为此,对于每一种序列,都有一个数据代理类,它们都继承自QAbstractDataProxy,而每一个数据代理类还有一个基于项数据模型的数据代理子类,如下图所示: file 对于三维曲面序列QSurface3DSeries,还有一个专门用于显示地图高程数据的数据代理类,即QHeightMapSurfaceDataProxy,它可以将一个图片表示的高程数据显示为三维曲面,并且用户也可以根据自身需求自定义数据代理类。

若要在项目中使用Data Visualization模块,需要在项目配置文件中添加一行语句: Qt += datavisualization 同时在使用该模块的类的头文件或源程序文件中,加入下面两行语句:

#include using namespace QtDataVisualization

PS:本文内容参考自书籍《Qt5.9开发指南》,如有需要大家可自行前往了解。

  • End -

技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。 阿木实验室致力于为机器人研发提供开源软硬件工具和课程服务,让研发更高效!

--------------------------- Qt Data Visualization 5.7.0 --------------------------- Qt Data Visualization module provides multiple graph types to visualize data in 3D space both with C++ and Qt Quick 2. System Requirements =================== - Qt 5.2.1 or newer - OpenGL 2.1 or newer (recommended) or OpenGL ES2 (reduced feature set) - Manipulating Qt Data Visualization graphs with QML Designer requires Qt Creator 3.3 or newer Building ======== Configure the project with qmake: qmake After running qmake, build the project with make: (Linux) make (Windows with MinGw) mingw32-make (Windows with Visual Studio) nmake (OS X) make The above generates the default makefiles for your configuration, which is typically the release build if you are using precompiled binary Qt distribution. To build both debug and release, or one specifically, use one of the following qmake lines instead. For debug builds: qmake CONFIG+=debug make or qmake CONFIG+=debug_and_release make debug For release builds: qmake CONFIG+=release make or qmake CONFIG+=debug_and_release make release For both builds (Windows/OS X only): qmake CONFIG+="debug_and_release build_all" make After building, install the module to your Qt directory: make install If you want to uninstall the module: make uninstall Building as a statically linked library ======================================= The same as above applies, you will just have to add static to the CONFIG: qmake CONFIG+=static Documentation ============= The documentation can be generated with: make docs The documentation is generated into the doc folder under the build folder. Both Qt Assistant (qtdatavisualization.qch) and in HTML format (qtdatavisualization subfolder) documentation is generated. Please refer to the generated documentation for more information: doc/qtdatavisualization/qtdatavisualization-index.html Known Issues ============ - Some platforms like Android and WinRT cannot handle multiple native windows properly, so only the Qt Quick 2 versions of graphs are available in practice for those platforms. - Shadows are not supported with OpenGL ES2 (including Angle builds in Windows). - Anti-aliasing doesn't work with OpenGL ES2 (including Angle builds in Windows). - QCustom3DVolume items are not supported with OpenGL ES2 (including Angle builds in Windows). - Surfaces with non-straight rows and columns do not always render properly. - Q3DLight class (and Light3D QML item) are currently not usable for anything. - Changing most of Q3DScene properties affecting subviewports currently has no effect. - Widget based examples layout incorrectly in iOS. - Reparenting a graph to an item in another QQuickWindow is not supported. - Android builds of QML applications importing QtDataVisualization also require "QT += datavisualization" in the pro file. This is because Qt Data Visualization QML plugin has a dependency to Qt Data Visualization C++ library, which Qt Creator doesn't automatically add to the deployment package. - Only OpenGL ES2 emulation is available for software renderer (that is, when using QCoreApplication::setAttribute(Qt::AA_UseSoftwareOpenGL))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值