QML如何與C 互動

2022-09-16 21:27:29 字數 1292 閱讀 3074

大家都知道,qml作為構建介面的語言是非常簡潔的,但是介面的後台有些時候是經常要與c++互動的,那麼這個時候,如何與c++進行互動就尤為重要了,在這裡就需要用到

template

int qmlregistertype(const char *uri, int versionmajor, int versionminor, const char *qmlname);這個模板函式,它是在qml系統中註冊名為qmlname的c++型別檔案

uri:這個引數類似於c++中的命名空間,如果不知道如何使用,沒關係,下面的例項中會展示如何使用。

versionmajor:主版本號。

versionminor:次版本號。

qmlname:c++檔案在qml中的類名,需要注意的是這個類名首字母必須要大寫,不然會報錯。

接下來就看看如何操作的吧

.h

#ifndef qmltype

#define qmltype#include

class qmltype:public

qobject

;#endif

//qmltype

.cpp

#include "

qmltype.h

"qmltype::qmltype()

qstring qmltype::showinfo()

需要注意的是如果函式想要在qml中被呼叫,那麼此類必須繼承於qobject,另外需要在函式的開頭新增q_invokable關鍵字。接下來就是如何向qml中註冊c++檔案了。

#include

"qmltype.h

"int main(int argc, char *ar**)

qml檔案

import qtquick 2.3

import qtquick.controls 1.2

import com.type.qmltype 1.0

visible: true

width: 640

height: 480

title: qstr("測試")

row}

textfield}}

在qml中要把註冊的url:com.type.qmltype匯入進去,那麼接下來接下來就可以正常操作c++檔案了。操作演示如下:

qml與C 的互動

簡單說下我自己對qml與c 的互動的理解流程 1.介面互動,很多新手可能會寫qt介面或者qml介面,但想要把qml與c 結合起來就一臉矇逼了。首先我提供個簡單的方法實現qml和c 的介面互動,首先引入幾個重要的標頭檔案,當然在專案檔案中需要加qt quickwidgets才能引用以下標頭檔案 inc...

qml與C 的互動

qml與c 的互動,簡單說下我自己對qml與c 的互動的理解流程 1.介面互動,很多新手可能會寫qt介面或者qml介面,但要把qml與c 結合起來就一臉矇逼了。首先我提供個簡單的方法實現qml和c 的介面互動。首先引入幾個重要的標頭檔案 include include include widget ...

玩轉Qml 5 Qml與C 互動

qml訪問c qml已經有很多功能,不過終歸會有不夠用或不適用的地方,需要通過與c 的互動進行功能擴充套件。這回濤哥嘗試把所有qml與c 互動相關的知識點都寫出來,做乙個透徹 全面的總結。玩轉qml 系列文章,配套了乙個優秀的開源專案 taoquick github 訪問不了或者速度太慢,可以用國內...