QM與C 互動(一)

2021-10-10 02:02:53 字數 2219 閱讀 2828

自己寫乙個c++ 類,  將c++註冊到qml 中, 作為qml的一種型別
具體劃分:有三種互動方式:
1:封裝的class 以訊號槽的形式和 qml 互動

2: 封裝的class 以函式的形式和 qml 互動

3: 封裝的class 以屬性值得形式和 qml 互動

1>	定義乙個 c++ 類 (widget.h 檔案中)
class

widget

:public qobject

signals:

// 傳送訊號

void

sig_send()

;public slots:

// 接受槽函式

void

slot_recive()

;};

2> 註冊 widget 類為qt的元物件 提供給qml ( main.cpp 中) ** 第 10行:
int

main

(int argc,

char

*ar**)

, qt::queuedconnection)

; engine.

load

(url)

;exec()

;}

3>  qml 中 呼叫 widget 類: **在main.qml 中
window 

}// 對應 c++ widget 類 做為qml 中的型別呼叫

widget

}

1>: 定義乙個 c++ 類 (widget.h 檔案中)
class

widget

:public qobject

// 普通函式 使用 q_invokable 巨集

q_invokable void

function

(int num)

; q_invokable qstring function1

(qstring str);}

;

2>:註冊 widget 類為qt的元物件 提供給qml ( main.cpp 中) ** 和上面的第二部一樣

3>: qml 中 呼叫 widget 類: **在main.qml 中

window 

mousearea

}}widget

}

1>: 定義乙個 c++ 類 (widget.h 檔案中)
class

widget

:public qobject

//unsigned int number: qml 中呼叫的屬性值, hwidget.number

//read num : 當qml 獲取 number 的時候 就會呼叫 num 函式

//write setnum : 當qml 設定 number 的時候 就會呼叫 setnum 函式

// notify numchange: 與屬性關聯的可選訊號。這個訊號必須在類中宣告過,當屬性值改變時,就可觸發這個訊號,可以沒有引數,有引數的話只能是乙個型別同屬性本身型別的引數,用來記錄屬性改變後的值。

// 獲取 類成員 屬性值

q_property

(unsigned

int number read num write setnum notify numchange)

;int m_num =10;

intnum()

void

setnum

(int number)

signals:

void

numchange

(int);

};

2>:註冊 widget 類為qt的元物件 提供給qml ( main.cpp 中) 和上面的第二部一樣

3>: qml 中 呼叫 widget 類: **在main.qml 中

核心**:

mousearea

}widget

}

C 與Lua互動(一)

之前做手遊專案時,客戶端用lua做指令碼,基本所有遊戲邏輯都用它完成,玩起來有點不爽,感覺 太重 了。而我又比較偏服務端這邊 僅有c 所以熱情不高。最近,加入了乙個端遊專案,客戶端和伺服器都用了lua,各種玩法是讓我眼界大開。在此,寫下自己的心得與體會,希望能與大家共同 進步。lua官網 cmake...

C 與EXCEL的資料互動(一)

c 與excel的資料互動 一 因為工作中需要管理比較多的資料,而資料又需要留存備查,公司也沒有符合要求的系統,於是萌發了開發乙個資料管理系統的想法。根據自身的愛好,在不需公司投入資金的情況下,選擇了vc 2005 express作為開發工具,sql server 2005 express作為儲存資...

C 與EXCEL的資料互動(一)

首先說明,我不是程式設計師,也不是科班出身,只是因為工作中需要管理比較多的資料,而 資料又需要留存備查,公司也沒有符合要求的系統,於是萌發了開發乙個資料管理系統的想法。根據自身的愛好,在不需公司投入資金的情況下,選擇了vc 2005 express作為開發工具,sql server 2005 exp...