Qt第一印象 屬性

2021-03-31 08:56:59 字數 1396 閱讀 9424

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將其與一新建連線繫結,...