qt多按钮鼠标进入事件

第1/2步:重写eventFilter。

LoginWindow.h:

// LoginWindow is where you placed your QPushButton 
//(= most probably your application windows) 

class LoginWindow: public QWidget 
{ 
public: 
     bool eventFilter(QObject *obj, QEvent *event); 
.. 
}; 

LoginWindow.cpp:

bool LoginWindow::eventFilter(QObject *obj, QEvent *event) 
{ 
    // This function repeatedly call for those QObjects 
    // which have installed eventFilter (Step 2) 

    if (obj == (QObject*)targetPushButton) { 
     if (event->type() == QEvent::Enter) 
     { 
     // Whatever you want to do when mouse goes over targetPushButton 
     } 
     return true; 
    }else { 
     // pass the event on to the parent class 
     return QWidget::eventFilter(obj, event); 
    } 
} 

步骤2/2:在目标窗口小部件安装eventFilter。

LoginWindow::LoginWindow() 
{ 
    ... 
    targetPushButton->installEventFilter(this); 
    ... 
} 
posted @ 2020-11-17 14:52  雨果然在下  阅读(365)  评论(0)    收藏  举报