準備分兩節來介紹qml擴充套件外掛程式,分別為
(一)基於qml檔案的擴充套件方式
(二)基於c++的外掛程式擴充套件
這篇先介紹基於qml的外掛程式擴充套件。
qmldir: 用於組織自定義的qml外掛程式,qmldir的具體寫法可參考
.qmltypes:qml外掛程式的解釋檔案,用於qtcreator語法高亮。可通過qt提供的工具qmlplugindump自動生成
qml_import_path: 匯入外掛程式路徑,以支援外掛程式的語法高亮。個人理解是如果純qml檔案的擴充套件,沒有封裝到c++中,則直接匯入路徑,即可支援語法高亮,如果有c++封裝,則需要通過.qmltypes支援高亮。
addimportpath: 新增import定址目錄,c++**裡新增,沒有前兩項,只是qtcreator不能高亮,沒有這種,則外掛程式無法使用。
1.建立工程,首先通過qtcreator建立乙個qmlplugintest子目錄工程:
3.新建qml外掛程式工程,myplugin
4.新建嚮導會自動建立示例檔案及外掛程式名稱,這裡可自己修改uri名稱,即你的外掛程式名稱
5.自動建立的myplugin生成目錄結構如圖:
其中qmldir檔案描述的外掛程式的組成:
module myplugin
plugin qmlplugin6.這節只介紹純qml的外掛程式方式,先不管自動生成的外掛程式檔案。
7.在myplugin目錄下,新增擴充套件qml,這裡新增乙個測試矩形,myrect.qml
8.在qmldir中新增myrect.qml,
預設建立時qml_import_path =,沒有賦值,修改為外掛程式的路徑,建議這裡使用相對路徑
qml_import_path = $$pwd/../
3.關閉qtcreator,重新開啟,可以紅色波浪線麼有了
4.在main.qml中,使用建立的myrect
所以需在c++中新增importpath,**如下:
engine.addimportpath("e:/t/qmlplugin/qmlplugintest/");(注意這裡匯入路徑是myplugin的上層資料夾,不是myplugin資料夾)
engine.load(qurl(qstringliteral("qrc:/main.qml")));
6.最後的程式目錄結構:
附錄:1.程式生成路徑:e:\t\qmlplugin\build
**:
QML外掛程式擴充套件(一)
準備分兩節來介紹qml擴充套件外掛程式,分別為 一 基於qml檔案的擴充套件方式 二 基於c 的外掛程式擴充套件 這篇先介紹基於qml的外掛程式擴充套件。qmldir 用於組織自定義的qml外掛程式,qmldir的具體寫法可參考 qmltypes qml外掛程式的解釋檔案,用於qtcreator語法...
QML外掛程式擴充套件(一)
qml外掛程式擴充套件 一 準備分兩節來介紹qml擴充套件外掛程式,分別為 一 基於qml檔案的擴充套件方式 二 基於c 的外掛程式擴充套件 這篇先介紹基於qml的外掛程式擴充套件。qmltypes qml外掛程式的解釋檔案,用於qtcreator語法高亮。可通過qt提供的工具qmlplugindu...
QML外掛程式擴充套件(二)
上一節介紹了純qml的外掛程式擴充套件方式,這種擴充套件方式基本滿足大部分的擴充套件需求,下面開始介紹比較小眾的基於c 的擴充套件 1.更新myplugin工程下的qmldir檔案,加入plugin myplugin,其中myplugin是外掛程式的動態庫名稱,在windows下對應myplugin...