enum在qmetaobject中的分布:
qmetaenum 類用來管理對應的enum結構,方面查詢等操作,下面是它的定義
class q_core_export qmetaenum
const char *name() const;
bool isflag() const;
int keycount() const;
const char *key(int index) const;
int value(int index) const;
const char *scope() const;
int keytovalue(const char *key, bool *ok = q_nullptr) const;
const char* valuetokey(int value) const;
int keystovalue(const char * keys, bool *ok = q_nullptr) const;
qbytearray valuetokeys(int value) const;
inline const qmetaobject *enclosingmetaobject() const
inline bool isvalid() const
templatestatic qmetaenum fromtype()
private:
const qmetaobject *mobj;
uint handle;
friend struct qmetaobject;
};
const qmetaobject *mobj;
uint handle;
所有的操作基於這兩個成員,hadnle 是該列舉節 相對整個結構的偏移量
1、const char *qmetaenum::
name()
const 返回列舉型別的名稱字串
const char *qmetaenum::name() const
2、int qmetaenum::
keycount()
const 返回key的數量
int qmetaenum::keycount() const
3、const char *qmetaenum::
key(int index) const 返回index索引的key的名稱字串
const char *qmetaenum::key(int index) const
4、int qmetaenum::
value
(int index) const 返回index索引的key的值
int qmetaenum::value(int index) const
5、 bool qmetaenum::
isflag()
const 是否使用標記
/*!
returns \c true if this enumerator is used as a flag; otherwise returns
false.
when used as flags, enumerators can be combined using the or
operator.
\sa keystovalue(), valuetokeys()
*/bool qmetaenum::isflag() const
6、const char *qmetaenum::
scope()
const 返回所屬類名
const char *qmetaenum::scope() const
7、int qmetaenum::
keytovalue
(const char *key, bool *ok) const 根據key名返回對應的值
int qmetaenum::keytovalue(const char *key, bool *ok) const
int count = mobj->d.data[handle + 2];
int data = mobj->d.data[handle + 3];
for (int i = 0; i < count; ++i)
}return -1;
}
8、const char* qmetaenum::
valuetokey
(int value) const 根據值返回key 名
const char* qmetaenum::valuetokey(int value) const
centos6 5下qt5 7原始碼安裝
1.前提,gcc公升級至4.8以上 3.解壓tar zxvf qt everywhere opensource src 5.7.0.tar.gz 4.重新命名mv qt everywhere opensource src 5.7.0 qt5.7 5.進入目錄cd qt5.7 6.配置.configu...
象棋實戰 基於QT5 7
第一天 總體架構 1.熟悉qt基礎函式 2.構建象棋整體框架 棋子的表示,走法,以及要實現的功能 人人,人機,網路等 3.使用qt繪製棋盤 a.繪畫棋盤 b.繪畫棋子 c.棋盤行列值和螢幕之間的畫素值之間進行切換 d.螢幕重繪 第二天 規則 1.初始化棋子 2.移動 3.象棋走棋規則 a.將 b.士...
樹莓派 Qt5 7交叉編譯
一 準備軟體 2.cross compile tools master.zip 3.gcc 4.7 linaro rpi gnueabihf.tbz 二 步驟 2.當掛載完成後,請進入cd mnt rasp pi rootfs usr lib arm linux gnueabihf 檢視兩個so檔案...