OSG和OSGEarth嵌入到qt窗口的几种方式

  • Post author:
  • Post category:其他



提示:此文章为总结这几天所看的osg嵌入到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



总结



版权声明:本文为qq_38697743原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。