OSG在QT的中顯示之一

2021-09-10 09:03:29 字數 2737 閱讀 4557

之前寫過關於osg的一些文章,主要是以基礎為主,但是結合qt來顯示還沒有寫過。

osg和qt結合顯示有單獨的類:graphicswindowqt。如果編譯過程中沒有把這個類編譯成庫檔案,可以直接在原始碼中拷貝出來,把頭檔案和cpp檔案修改一下檔名就可以了,然後把修改好的.h和.cpp加入到工程中。

環境:vs2015+qt5.10+64位+osg3.5.1

把環境設定好,頭檔案目錄、鏈結檔案目錄在vs2015中配置好。

#pragma once

#ifdef _debug

#pragma comment(lib, "osgd.lib")

#pragma comment(lib, "osgdbd.lib")

#pragma comment(lib, "osgfxd.lib")

#pragma comment(lib, "os**iewerd.lib")

#pragma comment(lib, "openthreadsd.lib")

#pragma comment(lib, "osggad.lib")

#pragma comment(lib, "osgutild.lib")

#pragma comment(lib, "osgtextd.lib")

#pragma comment(lib, "osgwidgetd.lib")

#pragma comment(lib, "osgshadowd.lib")

#pragma comment(lib, "osganimationd.lib")

#pragma comment(lib, "osgparticled.lib")

#pragma comment(lib, "osgmanipulatord.lib")

#pragma comment(lib, "osgsim.lib")

#pragma comment(lib, "osgearthd.lib")

#pragma comment(lib, "osgearthutild.lib")

#pragma comment(lib, "osgearthfeaturesd.lib")

#pragma comment(lib, "osgearthsymbologyd.lib")

#pragma comment(lib, "ceguibase_d.lib")

#pragma comment(lib, "ceguiopenglrenderer_d.lib")

#pragma comment(lib, "ceguiluascriptmodule_d.lib")

#pragma comment(lib, "glu32.lib")

#pragma comment(lib, "opengl32.lib")

#else

#pragma comment(lib, "osg.lib")

#pragma comment(lib, "osgdb.lib")

#pragma comment(lib, "osgfx.lib")

#pragma comment(lib, "os**iewer.lib")

#pragma comment(lib, "openthreads.lib")

#pragma comment(lib, "osgga.lib")

#pragma comment(lib, "osgutil.lib")

#pragma comment(lib, "osgtext.lib")

#pragma comment(lib, "osgwidget.lib")

#pragma comment(lib, "osgshadow.lib")

#pragma comment(lib, "osganimation.lib")

#pragma comment(lib, "osgparticle.lib")

#pragma comment(lib, "osgmanipulator.lib")

#pragma comment(lib, "osgsim.lib")

#pragma comment(lib, "osgearth.lib")

#pragma comment(lib, "osgearthutil.lib")

#pragma comment(lib, "osgearthfeatures.lib")

#pragma comment(lib, "osgearthsymbology.lib")

#pragma comment(lib, "osgearthannotation.lib")

#pragma comment(lib, "osgearthsplat.lib")

#endif

設定兩個變數

qtimer* _timer;

os**iewer::viewer viewer;

初始化osg場景及其相關

void osg::initosg() 

void osg::slotupdate()

ui檔案

執行結果:

解決QT中文字串在osg中顯示亂碼的問題

網上有很多例子,但是幾乎都沒有正常顯示中文,經過痛苦的試驗和折磨,終於解決了qt字串在osg中的正常顯示問題,下面貼出主要 分享給大家。qtextcodec setcodecfortr qtextcodec codecforname gbk qtextcodec code qtextcodec co...

Qt顯示PDF系列之一

qt 只提供了對pdf檔案的讀寫介面,顯示介面並沒有。如下實現顯示。據我所知有以下幾種方法 1.將pdf顯示為web頁面,需要用到類似pdfobject.js類 該類實現了網頁對pdf的解析,然後qt通過瀏覽器控制項進行載入。這裡要求html編寫者提供乙個傳入檔案路徑的介面,qt通runjacasc...

QT 在lineEdit中顯示中文亂碼

最近學qt,打算用qt做乙個天氣預報,從獲取的檔案 含有中文 中提取天氣資訊,然後載入到lineedit控制項中,遇到了中文顯示亂碼的問題。嘗試了許多,最後發現有一種可行的辦法 由於從檔案中提取出來的資料為qbytearray型別的,而lineedit需要的是qstring型別的,所以如下寫ok m...