qt中的屬性(property):
和c#類似,qt為類提供了可以「獲取」、「設定」的快捷方式——property,目的都是為了:資料成員方式使用,(函式成員方式定義)。
c#使用get、set方式,達到「資料成員方式定義」的屬性;
qt使用普通函式成員+q_property巨集,完成屬性,及元資料(簡單說:就是執行時可以檢視的有關類的資訊)的加入;
<*.h>
……q_property( type name read getfunction [write setfunction] [reset resetfunction] [designable bool] [scriptable bool] [stored bool] )
/*q_property巨集:將資訊註冊如元物件(qmetaobject),
qmetaobject類:提供一系列方法,查詢、修改已經註冊進的資訊(如:屬性、列舉、繼承關係、類名、訊號、槽);
qobject類就利用qmetaobject來查詢、修改屬性的,同時也是一種「執行期操作類屬性」的方法;
name用於qobject獲取、設定屬性時使用;
read是必須的,不同與c#(c#可以僅定義只寫屬性);*/
public:
void setfunction(type);
//引數(或下面get函式的返回值)的型別(type)可以是qvariant的繼承類,
//也可以是enum,但必須用q_enums(myenum……)註冊為元物件。
type getfunction() const;
void resetfunction();
private:
type n;
……<*.cpp>
……void myclass::setfunction(type name)
type myclass::getfunction() const
void myclass::resetfunction()
……《使用方法》
方法一:
myclass *mc =……;
mc->setfunction(value);
mc->getfunction();
方法二:
qobject *qo = ……;
qo->setproperty("name",value);
qo->getproperty("name");
除了上面提到的,qt的元物件還提供了一些其他的東東:
巨集有:q_object
q_property
q_enums
q_classinfo
q_override
tr()和trutf8() 兩個函式是用於國際化中的字串翻譯
Qt第一印象
qt第一印象 qt是跨平台的c 應用程式框架,與mfc atl 框架類似,包含一套執行時機制 開發工具 和乙個龐大的類庫 區別與他們的是 qt支援很多平台,致力於實現 原始碼不動,重新編譯即可完成平台移植。講qt的書很少,chinapub上只有3本,dearbook上有4本,並且有trolltech...
Qt第一印象 Qte與Qt
qte即qt embedded,它是qt的乙個版本,要知道,它可不是其他版本 qt x11,qt mac 的子集,恰相反,qte比他們包括更大的類庫,可以說是他們的擴充套件。剛開始,我對qte很模糊,搞不清楚它的開發模式,和在qt家族中所處的地位,經過同事的幫助,總算看到了一點起色。qt與qte具有...
ACE 第一印象
時間會比較長 提供了 ace inet addr 主要是協議族的表示 是為了使用 ace sock acceptor,這是server端必須的 就是客戶端的要使用的 ace sock connector 是為了使用 ace sock stream,類似於檔案描述符,accept將其與一新建連線繫結,...