自己寫乙個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...