之前寫過關於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...