目錄
- 1.概述
- 2.注冊方式
- 3. 分類
- ①枚舉類
- ②工具類
- ③數據類
- ④資源類
- ②視圖類
1.概述
qml是用來干嘛的?
當然是提高UI開發效率的
為什么要混合C++?
因為qml無法處理密集型數據邏輯
而加入c++則兼顧了性能
達到1+1>2
總結就是 qml 開發UI, C++ 實現邏輯
而js的用在簡單的邏輯與接合c++與qml
2.注冊方式
清楚了qml的使用,那么就意味著我們要開始著手邏輯
而qml 引入c++的方式則是通過將注冊c++到qml中進行使用
注冊方式就有以下幾種:
常用如下
1.qmlRegisterModule()
注冊類型前,先顯示聲明模塊存在,否則通過類型的方式注冊模塊的話是隱式聲明的
2.qmlRegisterType()
基本上這個就是正常的類型,沒有什么限制,可以實例化
3.qmlRegisterUncreatableType()
如果希望對象只由C++創建則使用這個
4.qmlRegisterUncreatableMetaObject()
一般用于注冊工具類或者專門提供枚舉的枚舉類
5.qmlRegisterInterface()
一般注冊接口類, 用于容納多態對象
6.qmlRegisterSingletonInstance()
注冊單例模式
3. 分類
我們將qml使用c++的東西分類成以下幾種
①枚舉類
一般專門管理枚舉的類
②工具類
一般就是提供靜態方法的類
③數據類
派生于QObject ,專門提供給qml數據
用于作為一個數據類型,狀態機,接口提供;
④資源類
qml提供了資源接口類QuickImageProvider
派生與QuickImageProvider的類,可以給qml中Image組件提供圖像資源的路徑,當然這個提供的靜態圖像資源
應用途徑就有動態二維碼,驗證碼等等
②視圖類
用于渲染視圖的類,也就是組件類
組件類有哪些呢? 就是派生于QQuickItem 與 QQuickPaintedItem 的類
將他們注冊到qml 中就是qml的組件了