[英]How to check if the mouse release event has occurred over the widget
我試圖捕獲一個小部件中的鼠標釋放事件,以確保以前在同一小部件中按下了鼠標。 mouseReleaseEvent已成功調用,但我不知道如何處理參數QMouseEvent來檢查鼠標的位置是否在小部件內。 我當前的代碼:
void DeviceWidget::mouseReleaseEvent(QMouseEvent* e)
{
if (_mouseClick)
{
_mouseClick = false;
emit mouseClick(_deviceInformation);
}
}
非常感謝,
您需要檢查鼠標釋放事件的本地位置是否在窗口小部件內。 我認為沒有理由使用_mouseClick
成員變量。 僅當在此小部件上按下鼠標時,才會調用此方法。 當您按下按鈕時,小部件開始跟蹤鼠標,並且無論釋放鼠標的位置如何,它都會收到釋放事件。
void DeviceWidget::mouseReleaseEvent(QMouseEvent* e)
{
if (rect().contains(e->localPos()->toPoint()) {
emit mouseClick(_deviceInformation);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.