<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] ## 概述 1. 為了保持類的封裝特性,通常成員變量需要保持私有狀態 2. 而為了與其他對象協作,就需要提供相應的 get/set 函數 3. 如果成員變量的數值發生了變化,通常也需要提供通知(NOTIFY)信息告知相關對象 格式: ``` Q_PROPERTY(type name READ getFunction [WRITE setFunction] [RESET resetFunction] [NOTIFY notifySignal] ) ``` > 不設置Write,NOTIFY 就只是只讀元素 **枚舉定義** 枚舉必須使用 Q_ENUMS 定義 ``` enum CustomType{ Corporate,Individual,Educational,Goverment }; Q_ENUMS(CustomType); ``` ## 實例 ### 通知實例 hello.h ``` class Hello : public QObject { Q_OBJECT Q_PROPERTY(QString nameNick READ nameNick WRITE setnameNick NOTIFY nameNickChanged) public: explicit Hello(QObject *parent = nullptr); const QString& nameNick(); signals: void nameNickChanged(const QString &strNewName); public slots: void setnameNick(const QString &strNewName); private: QString m_nameNick; }; ``` hello.cpp ``` Hello::Hello(QObject *parent) : QObject(parent) { World *w1=new World(); //connect 可以添加在 MainWindow 上,但是 connect 需要在 setnameNick 前聲明 connect(this,&Hello::nameNickChanged,w1,&World::r_nameNickChanged); } const QString &Hello::nameNick() { return m_nameNick; } void Hello::setnameNick(const QString &strNewName) { if(strNewName == m_nameNick){ return ; } m_nameNick=strNewName; emit nameNickChanged(strNewName); } ``` main.cpp ``` int main(int argc, char *argv[]) { QApplication a(argc, argv); Hello h; // 方式一 h.setnameNick("213"); // 方式二 h.setProperty("nameNick","345"); return a.exec(); } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看