提示:此文章为总结这几天所看的osg嵌入到qt的方法,并附带了每个方法显示数字地球的
OSG和OSGEarth嵌入到qt窗口的几种方式
学习地址:
方式一:
http://blog.sina.com.cn/s/blog_d01f29a10101m8fg.html
方式二:
https://blog.csdn.net/chlk118/article/details/46808889
https://blog.csdn.net/chlk118/article/details/46809237
方式三:
https://blog.csdn.net/qq_34719188/article/details/92806907
方式四:
https://www.cnblogs.com/charlee44/p/11031757.html
方式五:
https://www.shangmayuan.com/a/a4d35bd68f1748afb02a1dd0.html
IDE:VS2017 QT版本:qt5 项目:QWidget或者QMainWindows
一、嵌入Qt的QGLWidget框架
在Qt的窗口上嵌套OSG,最简单的方法其实就是用多进程,以一种外部控制的方式使两个窗口看起来像是父子关系,但是不是真正意义上的父子关系。于是这种方案抛弃了。
接着分析,要潜入一个Qt类型的主窗口,就必须是Qt类型的窗口。于是就需要从众多Q系列的窗口里需要找到一个支撑OSG画面的窗口类型。OSG是基于OpenGL的渲染引擎吧而恰好,Qt也有对OpenGL窗口支持的Q类型窗口,这个窗口类型的名字就是QGLWidget,于是乎,基于这个类派生自己的OSG窗口似乎是个不错的想法(嗯确实是个不错的想法)。
QGLWidget是多继承了QWidget(使这种窗口具有了Q系列的血统)和QGL(又让此窗口有了三维视觉效果),是个不错的想法。于是,下面就是最原始的嵌入式OSG的窗口类别~,以及实现方法。。
二、嵌入Qt的QGraphicsView框架
三、继承 QOpenGLWidget 和 osgViewer::Viewer
四、使用osgQt的GraphicsWindowQtt框架
五、Qt加载OsgEarth的新方式osgQOpenGL
总结