- 在一個quick 程序中其實 .qml 和c++文件是兩個平行的世界,所以想要在qml中使用c++ 在qt中提供了兩種方法
a、把c++的一個類註冊爲qml環境的一個類型 這樣就能在qml環境中使用該類型創建對象
b、在c++中構造一個對象,將這個對象設置爲qml的上下文屬性,在qml中能夠直接使用該屬性
- 想要在qml中使用 c++ (不管是上面哪種方式)必須滿足兩個條件
a、繼承自QObjec 或是他的派生類
b、使用Q_OBJECT宏
1、在qml中可以訪問的c++類(設置類的屬性)
信號和槽 : 可以把c++信號鏈接到qml 也可以把 qml信號鏈接到c++槽 也可以直接調用c++的信號鏈接c++的槽
Q_INVOKABLE宏修飾的 c++類中的成員方法
Q_ENUMS 宏修飾的枚舉類型
Q_PROPERTY宏修飾的屬性 這個宏用起來有點麻煩詳細可以查看文檔
2、在qml怎麼僵c++類註冊爲qml類型
①實現c++類
②註冊成qml類型 qmlRegisterSingleType()單例類型;qmlRegisterUncreatableType()有附加屬性的類型;qmlRegisterTypeNotAvailable()註冊一個類型用來佔位;qmlRegisterType()註冊一個非單利類型
③在qml中導入類型 import()
④在qml中創建該類型的實例並且使用
3、在c++對象導出爲qml屬性
①查看
圖a1
②如果是+Windows 的程序如圖a2