因爲須要使用 Qt Quick 進行 3D 繪圖,所以在網上找了一些資料。html
JS 繪製 3D 的有 ThreeJS 庫,應該能夠用於 QML。繼續搜索,發現Qt 裏面有一個 QtCanvas3D 模塊,能夠用來進行 3D繪製。那就照着 Qt 官方教程作,首先導入該模塊git
import QtCanvas3D 1.1
可是問題來了,QtCreator 提示 「QML Module not found」,原來是電腦上沒有這個模塊,那就安裝這個模塊吧。找了一圈,沒有找到比較好的安裝模塊的方法,最後找到了 GitHub 上的 qtcanvas3d 源碼地址github
下載下來本身編譯應該沒什麼問題。接下來談談安裝模塊的經歷。canvas
1. 下載相應版本的 qtcanvas3d ,我用的 Qt 版本是 5.6,下載後解壓獲得 qtcanvas3d-5.6 文件夾。ui
爲了方便,我把它放到了 <QT Install Dir>/5.6 目錄下(這裏存放的是編譯器相應配置和庫的文件夾)。spa
2. 打開 qtcanvas3d-5.6/src/imports/qtcanvas3d 目錄,直接用 QtCreator 打開 qtcanvas3d.pro ,獲得一個 qtcanvas3d 工程插件
打開這個項目的屬性,把構建設置的 Shadow Build 取消掉(固然也能夠指定目標位置,可是我指定後沒有編譯出相應的 dll 文件)3d
構建,就能在 <Qt Install Dir>/5.6/qtcanvas3d-5.6/ 目錄下獲得新目錄 qml,裏面存放的文件夾 QtCanvas3D 就是編譯獲得的庫文件。code
上圖就是我用 msvc 編譯器編譯獲得的庫文件,可是把 QtCanvas3D 整個文件夾複製到 <Qt Install Dir>/5.6/msvc20xx_64/qml 目錄下,在 QtCreator 裏面仍是會顯示找不到 QtCanvas3D 模塊。htm
3. 參考官方文檔 QML Modules ,這裏說明了要想添加插件,還須要兩個文件 qmldir 和 plugins.qmltypes 。這兩個文件在源代碼中就有(上圖中的 qtcanvas3d 項目中的兩個文件就是咱們須要的文件),
複製到相應的目錄,從新打開 QtCreator,再看項目,發現 「Module not found」 提示已經消失。成功導入模塊!
-----------------------------------------------
在添加 qtcanvas3d 庫時,犯了一個很蠢的錯誤。
我先用 MinGW 32 編譯出了庫文件,而後把庫文件複製到 <Qt Install Dir>/5.6/mingwxx_xx/qml 目錄下,可是把 qmldir 和 plugins.qmltypes 複製相應位置,仍是提示我沒有找到模塊。
最後發現,個人項目是用的 msvc 編譯器,查找插件是到 msvc 相應目錄查找,難怪我怎麼修改都沒有辦法把插件添加進去。最後從新用 msvc 編譯 QtCanvas3D ,放到 msvc 編譯器的插件目錄下面,就行了。
根據論壇裏的答覆,也能夠自定義插件路徑,要在構建環境裏添加一個 QML2_IMPORT_PATH 變量,指向相應目錄,試過這個辦法,可是沒什麼用。