QT入門-自定義槽函數


自定義槽函數

1) 點擊按鈕b1,使得b2按鈕的文本內容更改:

QPushButton里沒有對應的槽函數。理論上應該將自定義的槽函數寫到b2

對應的button類里,但看起來不行。換一種思路,b1發出信號讓另一個對象接受,然后更改b2的文本內容。考慮MainWidget,可以訪問到b1, b2的對象。

故connect函數可以這么寫:connect(b1, &QPushButton::released, this,    f( )  )

其中f就是自定義的槽函數。

2) 自定義的槽函數:

  1. 槽函數在QT5可以是任意類成員函數,全局函數,靜態函數,lambda表達式。一般都是定義為類的成員函數。
  2. 槽函數需要與信號對應(返回值,參數)。
  3. 信號沒有返回值,槽函數有返回值:void
  4. void mysig(int, double, QString);

void myslot(int, double, QString);一一對應

這樣定義主要是為了接受信號傳過來的數據。

信號的參數可以多於槽函數的參數,但反過來不行。

  5.槽函數可以重載。

 

eg:

connect(&b1, &QPushButton::released, this, &Widget::slotMainWidget );

this就是主窗體的指針,Widget::slotMainWidget是成員函數,負責修改b2按鈕的Text。因為b2是在窗體內的,因此可以直接訪問。


免責聲明!

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



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