簡體   English   中英

如何檢查小部件上是否發生了鼠標釋放事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM