QML自定義元件實現(擴充套件外掛程式)

2021-10-03 21:10:45 字數 1761 閱讀 9155

qml 的元件(控制項)已經有很多了,在安裝目錄的qml下。例如:

c:\qt\qt5.12.0\5.12.0\mingw73_64\qml或者

c:\qt\qt5.12.0\5.12.0\msvc2015_64\qml

最常用的是:qtquick和qtquick2.那麼,如何自定義新增的庫呢?

比如想自己製作一套個性風格的按鈕、輸入框、進度條、下拉框等?

1 新建 qt quick 2 extension plugin外掛程式

沒有什麼特別,普通的qml即可。如下

hikbutton.qml

import qtquick 2.12

import qtquick.controls 2.12

rectangle

mousearea

}

1 要繼承qobject或者子類

2 要有q_object巨集

3 屬性要q_property 函式要q_invokable

4 重寫 registertypes 函式如下

void iscqmlplugin::

registertypes

(const

char

*uri)

內容如下

1 建立乙個和元件名稱相同的資料夾,裡面放 qmldir,庫生成的dll,qml檔案

2 複製到qt的安裝目錄下的qml夾即可。

1 在pro檔案中修改 qml_import_path =     //【目的是在工程中的qml引用庫的時候可以找到】
2 在main函式中增加 // 【目的是執行階段能找到庫】

這裡的路徑要是步驟7的檔案的父目錄。比如:c:\qt\qt5.12.0\5.12.0\mingw73_64\qml

* 感覺qml非常依賴於檔案路徑和檔名稱】

3 使用工程的qml中包含 庫名稱和版本即可,如下

如果上圖中紅色下劃線部分提示錯誤,可以嘗試重啟qtcreator.類似於vs studio中的重新掃瞄。

1 需要重寫

void ***(控制項名稱)::registertypes(const char *uri)

2 其他問題後面補。

qml 自定義訊息框 Qml自定義元件的使用

component是可重用的 封裝的 具有定義良好的介面的qml型別。元件通常由元件檔案定義,即.qml檔案。元件型別本質上允許在qml檔案中內聯定義qml元件,而不是作為單獨的qml檔案。這對於在qml檔案中重用小組件或定義邏輯上屬於檔案中其它qml元件的元件可能很有用。1.在單獨檔案中定義com...

自定義jquery外掛程式擴充套件

根據我們的需要有時候會擴充套件 例項方法,eg id customfunction 這裡需要用到 jquery 內建的 fn.extend方法,有關 fn.extend請參考 總體結構 function jquery eg 擴充套件jquery例項的parentname,獲取父節點的name htm...

自定義全域性外掛程式 元件

使用指令建立專案 執行專案,看專案能否正常執行 執行結果說明專案能正常執行 在官網中有這樣的部分 在生成的專案中新建該目錄 從效果圖中看出問題 問題描述 點選button的時候沒有發生任何改變 解決問題方法 home.vue 在button中加入乙個click事件 1 2class home 3vu...