QT入門-自定義信號


1) 主窗口的子窗口:給當前項目添加一個C++類(QWidget為基類)。把這個類的頭文件include進主窗口,然后在主窗口的私有變量里這樣寫:SubWidget subW;

想要通過主窗口的按鈕打開子窗口的時候,把按鈕的點擊動作和主窗口的成員函數connect起來,這個成員函數執行的就是subW->show()。(當然也可以hide主窗口)。

2) 當想要點擊子窗口的按鈕來顯示主窗口:

用到自定義信號。

在SubWidget類內自定義信號,前面要加signal關鍵字聲明。加了signal關鍵字,編譯器就知道這是信號,就無需實現了。

signal:

  void sigSub();

  /*

         1.可以有參數

         2.可以重載

         3.返回值為void

         4.發送信號:emit + 信號名

  */

  sigSub這個信號屬於SubWidget,因此子窗口能夠把這個信號發出去。

在子窗口的構造函數這樣寫:connect(b1, &QPushButton::clicked, this, &SubWidget::myslot);

而:

           void SubWidget::myslot()

           {

            //發送信號

              emit sigSub();

   }

表示發送信號。

在主窗口的構造函數里這么寫:connect(&sb, &SubWidget::sigSub, this, &Widget::slotShowMe); 信號的發出者是子窗口, 信號為sigSub,接收者為主窗口,槽函數是主窗口的成員函數,內部可以自定義(比如show主窗口,hide子窗口)。


免責聲明!

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



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