• 1)OSG与QT单文档视图的结合


    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还是不明白是怎么建立的

  • 相关阅读:
    [CF1483C] Skyline Photo
    [CF1483B] Playlist
    [CF1483A] Basic Diplomacy
    [CF1329C] Drazil Likes Heap
    [CF1329B] Dreamoon Likes Sequences
    [CF1329A] Dreamoon Likes Coloring
    [CF96E] Horse Races
    [ICPC2020济南J] Tree Constructer
    [ICPC2020济南L] Bit Sequence
    [ICPC2020济南G] Xor Transformation
  • 原文地址:https://www.cnblogs.com/hanmolabi/p/7309923.html
Copyright © 2020-2023  润新知