QT的Q3DScatter使用(三维可视图)
讲解都在注释中。
3d.pro文件
#-------------------------------------------------
#
# Project created by QtCreator 2018-03-12T18:11:08
#
#-------------------------------------------------QT += core gui datavisualization widgetsgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = 3d
TEMPLATE = app# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \main.cpp \mainwindow.cppHEADERS += \mainwindow.hFORMS += \mainwindow.ui
target.path = $$[QT_INSTALL_EXAMPLES]/datavisualization/$$TARGET
INSTALLS += target
main.cpp
#include "mainwindow.h"
#include <QApplication>
using namespace QtDataVisualization;
int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}
mainwindows.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QVBoxLayout>
#include "scatterdatamodifier.h"
#include <QtWidgets/QMessageBox>
using namespace QtDataVisualization;MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);//创建一个三维坐标系Q3DScatter *graph = new Q3DScatter();//设置相机的位置graph->scene()->activeCamera()->setCameraPreset(Q3DCamera::CameraPresetBehindLow);//设置阴影显示graph->setShadowQuality(QAbstract3DGraph::ShadowQualityNone);//设置坐标轴的范围graph->axisX()->setRange(0, 480);graph->axisY()->setRange(0, 480);graph->axisZ()->setRange(0, 480);//设置坐标轴的数量graph->axisX()->setSegmentCount(int(480/20));graph->axisY()->setSegmentCount(int(480/20));graph->axisZ()->setSegmentCount(int(480/20));//设置整体坐标系的主题graph->activeTheme()->setType(Q3DTheme::ThemeQt);graph->axisX()->setLabelFormat("X");graph->axisY()->setLabelFormat("Y");graph->axisZ()->setLabelFormat("Z");//点QScatter3DSeries *series = new QScatter3DSeries;//点,大小series->setItemSize(0.05);//点,坐标QScatterDataArray data;// data << QVector3D(0.5f, 0.5f, 0.5f);//创建一个widget,将坐标系添加进去QWidget *container = QWidget::createWindowContainer(graph);//判断是否graph(opengl)初始化if (!graph->hasContext()) {QMessageBox msgBox;msgBox.setText("Couldn't initialize the OpenGL context.");msgBox.exec();}//水平布局,父对象是wifgetQHBoxLayout *hLayout = new QHBoxLayout(ui->widget);//垂直布局QVBoxLayout *vLayout = new QVBoxLayout();//将container添加到水平布局中hLayout->addWidget(container, 1);hLayout->addLayout(vLayout);data.append(QVector3D(0.5f, 0.5f, 0.5f));data.append(QVector3D(10, 10, 10));series->dataProxy()->addItems(data);graph->addSeries(series);
}MainWindow::~MainWindow()
{delete ui;
}
QT的Q3DScatter使用(三维可视图)相关推荐
- 【Qt】2D绘图之图形视图框架(一)
00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 场景(Scene) 04. 视图(View) 05. 图形项 06. 附录 01. 概述 在前面讲的基本绘图中,我们可以自 ...
- Matplotlib画图教程:在QT界面中嵌入三维图片
Matplotlib画图教程:在QT界面中嵌入三维图片 需求: 做项目报告的时候,有这么一个想法,就是能通过UI随时调用matplotlib进行二维图和三维图的绘制.因此就诞生了做这么一个小模块的想法 ...
- QT的Q3DScatter类的使用
详细说明 Q3DScatter类提供了用于渲染3D散点图的方法. 此类使开发人员可以在3D中渲染散点图,并通过自由旋转场景来查看散点图. 按住鼠标右键并移动鼠标即可完成旋转. 缩放是通过鼠标滚轮完成的 ...
- Qt笔记-Q3DScatter中元素的移动和旋转
程序运行截图如下: 这里的主要框架为Q3DScatter 首先是设置范围,免得随机生成坐标时,坐标系不停的变: 使用QScatter3DSeries生成一串的item.方便显示在m_graph中 使用 ...
- Qt笔记-Q3DScatter及QCustom3DItem的基本使用
这里加载了obj文件.程序运行截图如下: 感觉还不错,Qt自己封装了OpenGL,Qt开发者只需要依靠逻辑进行调用即可. 关键代码如下: using namespace QtDataVisualiza ...
- Qt文档阅读笔记-两视图共享模型实现冻结列效果(frozencolumn解析与实例)
目录 官方解析 博主例子 官方解析 官方有个很好的例子: Frozen Column Example 但感觉有点冗余!在后面我将修改官方的例子,以及说明下这个效果的原理: Qt模型视图框架 使用两个视 ...
- qt 旋转后的三维坐标_OpenGL + Qt: 3 - 旋转动画和键盘操纵
前三篇链接: 这一周笔者经历了漫长的洲际飞行和昏天黑地的倒时差,所以本篇内容相对少一些,侧重 Qt 而不是 OpenGL.在上一篇中,我们绘制了一个正四面体,然而正四面体的一个特点是无论你从哪个角度看 ...
- Qt 学习之路:模型-视图高级技术
PathView PathView是 QtQuick 中最强大的视图,同时也是最复杂的.PathView允许创建一种更灵活的视图.在这种视图中,数据项并不是方方正正,而是可以沿着任意路径布局.沿着 ...
- PyQt(Python+Qt)学习随笔:QTreeView树形视图的indentation属性
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTreeView树形视图的indentation属性用于控制视图中每级数据项之间的缩进,对于顶级项 ...
- Qt三维图表模块 -- Data Visualization 学习记录
Qt三维图表模块 ----- Data Visualization Qt数据可视化模块提供了一种将三维图形中的数据可视化为条形图.散点图和曲面图的方法.它对于可视化深度图和大量快速变化的数据特别有用, ...
最新文章
- 在Eclipse中的Android项目里实现代码“.NET研究”复用
- ADF:弹出窗口,对话框和输入组件
- php写抢票脚本,火车票抢票python代码公开揭秘!
- 上班划水神器:一个可以在控制台玩斗地主的项目!
- editplus显示FTP服务器连接,EditPlus3 FTP 设置对话框
- 微信小程序使用wxParse解析html代码
- 有关计算机专业工作室的名字,盘点最好听的工作室名字大全
- swfobject java_[Java教程]swfobject.js视频播放插件
- java ITEXT实现PDF生成二维码和条形码
- mplay readme
- 射频芯片ATE测试从入门到放弃之收发机
- 云计算360度:微软专家纵论产业变革
- android设备之间屏幕共享
- 好东西为什么卖不动,店铺选址开店必读!
- java操作linux命令
- VScode无法启动--- 感谢百度,感谢好人,感谢CCTV
- 模电笔记4 场效应管(单极型晶体管) 结型场效应管 绝缘栅型场效应管
- git权威指南总结五:git克隆
- ASP.NET Web Form学习
- BIOS设置选项启动