Qt的PushButton的經常使用的三種響應有pressed,released和clicked。函數
優先級:pressed>released>clickedspa
按下按鈕pressed函數的內容,釋放按鈕先執行released函數的內容,再執行clicked函數的內容。3d
當鼠標光標在按鈕上時,鼠標左鍵被按下時,pressed()被髮送;blog
當鼠標左鍵被釋放時,released()被髮送;cli
當按鈕首先被按下而後又被釋放或者快捷鍵被按下,或者當animateClick()被調用時,clicked()被髮送。sed
上圖MyButton中,QPushButton::mouseReleaseEvent(e)內部也不發出released和clicked信號im
由於父類QPushButton的mousePressEvent中會做額外處理,會把一個down設置爲true。
而後在mouseReleaseEvent中會檢查這個down是否爲true,爲true後纔會發射released和clicked信號filter