Qt PushButton的pressed,released,clicked三種響應的區別

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

相關文章
相關標籤/搜索