Qt的PushButton的常用的三種響應有pressed,released和clicked。
優先級:pressed>released>clicked
按下按鈕pressed函數的內容,釋放按鈕先執行released函數的內容,再執行clicked函數的內容。
當鼠標光標在按鈕上時,鼠標左鍵被按下時,pressed()被發送;
當鼠標左鍵被釋放時,released()被發送;
當按鈕首先被按下然后又被釋放或者快捷鍵被按下,或者當animateClick()被調用時,clicked()被發送。
上圖MyButton中,QPushButton::mouseReleaseEvent(e)內部也不發出released和clicked信號
因為父類QPushButton的mousePressEvent中會作額外處理,會把一個down設置為true。
然后在mouseReleaseEvent中會檢查這個down是否為true,為true后才會發射released和clicked信號