Хотя @Exa ответила на этот вопрос, я хочу показать другое решение, которое не нуждается в подклассе QPushButton и является гибким в использовании! (Это то, что мне нужно в моем проекте)
Шаг 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);
...
}