osgQT.lib缺失,需要单独编译,编译时出现了很多问题,后来没解决,就放弃了。

在网上看到一篇很好的博文,http://yrcpp.blog.163.com/blog/static/1260452592014102341533496/        下载了他的源码,研究了一下。

直接提供了包含了osgQT中的一个类GraphicsWindowQt,所以就不用编译osgQT了,也算偷了懒。

现对在QT界面中嵌入osg的方法总结如下:

0   MyOSGQT为qt界面类;OsgViewerWidget类;GraphicsWindowQt类

1   MyOSGQT类中是对窗体的定义。

     包括控件QWidgt,此控件的类提升为OsgViewerWidget,用于加载osgview。

     信号槽,控件QWidgt接收,调用OsgViewerWidget::openFile()函数

2   OsgViewerWidget

     该类继承了osgView::Viewer和osgQt::GLWidget。其中osgQt::GLWidget来自GraphicsWindowQt类

  构造函数中定义了图形设备类,表达一个图形窗口,并设置了操纵器、相机、事件处理               

  void paintEvent( QPaintEvent* event )方法,实现连续刷新

    void resizeEvent( QResizeEvent* event )方法,实现在窗口大小变化时,设置viewport和camera投影矩阵?

    void openFile()  打开osg模型

3  main

   调用qt窗体。

 

main调用MyOSGQT,MyOSGQT调用ui_MyOSGQT,ui_MyOSGQT调用OsgViewerWidget,OsgViewerWidget调用GraphicsWindowQt。

 

qt界面布局的设计需要另外学习

QWidget是应用程序的主窗口

布局管理器:  QHBoxLayout在水平方向上排列窗口部件,从左到右

                        QVBoxLayout在竖直方向上排列窗口部件,从上到下

                        QGridLayout把窗口部件排列在一个网格中

水平和垂直的布局大致懂了,但是splitter还是不明白是怎么建立的

相关文章:

  • 2021-12-20
  • 2019-08-28
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-03
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-16
  • 2021-05-29
  • 2021-06-14
相关资源
相似解决方案