Qt 淺析Q_PROPERTY宏


  最近在使用QProperAnimation畫類,研究這個的時候看到別人寫的代碼有用到 Q_PROPERTY()這個宏,然后查了下,這個宏只有Qt才有的

並且需要進行編譯,繼承於QOBJECT

 

Qt 手冊

 

Q_PROPERTY(type name

             (READ getFunction [WRITE setFunction] |
              MEMBER memberName [(READ getFunction | WRITE setFunction)])
             [RESET resetFunction]
             [NOTIFY notifySignal]
             [REVISION int]
             [DESIGNABLE bool]
             [SCRIPTABLE bool]
             [STORED bool]
             [USER bool]
             [CONSTANT]
             [FINAL])

屬性名稱類型以及READ是必須的,類型可以是QVariant支持的所有類型或者自定義;

WRITE功能常見,除了USER默認true其他均默認為false

如下:

Q_PROPERTY(QString title READ title WRITE setTitle USER true);

 

 

Q_PROPERTY(bool focus READ hasFocus);                    //從 hasFocus  讀取 focus的值

 

Q_PROPERTY(enabled READ isEnabled WRITE setEnabled);// 從 isEnabled取值到enable 然后寫入 setEnabled

 

Q_PROPERTY(Qcursor cursor READ cursor WRITE setCursor RESET unsetCursor);//亦或是 從cursor取值 到 cursor 然后寫入 setCursor 設置默認狀態 unsetCursor;

 

名稱都是自己在類中定義的,以及getValue 和 setValue  unsetValue;

Q_PROPERTY(類型  名稱  READ 功能模塊名 WRITE 功能模塊名 RESET 功能模塊名);

在重申一次; 類型名稱 以及 READ 是必須的、

 

 

 

下面列舉一個簡單的例子:

自己動手會明白更多。thanks for reading.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM