簡體   English   中英

Qt:MouseMove不起作用

[英]Qt: MouseMove not functioning

在我的Qt應用程序中,我需要跟蹤鼠標的移動。 為此,我創建了一個eventfilter並按如下所示正確安裝了它:

bool iArmMainWindow::eventFilter(QObject *obj, QEvent *event)
{
    if (event->type() == QEvent::MouseMove)//not working
    {
        iarm->printStatus("hi"); //this is for debugging

    }
    if (event->type() == QEvent::MouseButtonPress){
                //Here some staff working correctly
        }
//other staff
}

問題是事件類型MouseMove不起作用。

任何想法?

您應該對Qt說,您想通過setMouseTracking()函數獲取鼠標移動事件。 請注意, 安裝過濾器之前應先調用它(例如,在小部件的子類的c-tor中)。 我建議您使用一種更簡單的方法,而不是安裝事件過濾器:只需在小部件的子類中覆蓋QWidget :: mouseMoveEvent() 像這樣:

// header:
class MyWidget {
    ...
    void mouseMoveEvent( QMouseEvent * event );
};

// source:
MyWidget::MyWidget() {
    setMouseTracking(true);  //enables mouse tracking
}

void MyWidget::mouseMoveEvent( QMouseEvent * event ) {
    // do what you want
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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