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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM