继承QPushButton,然后用setFlat重写enterEvent和leaveEvent(setHidden和setVisiable都会导致消失后再也找不到)
autoFlatButton.h
#include <QPushButton>
class autoFlatButton : public QPushButton
{
public:
autoFlatButton(QWidget *parent = nullptr);
~autoFlatButton() override;
private:
void enterEvent(QEvent *event) override;
void leaveEvent(QEvent *event) override;
};
autoFlatButton.cpp
#include "autoflatbutton.h"
autoFlatButton::autoFlatButton(QWidget *parent)
:QPushButton(parent)
{
}
autoFlatButton::~autoFlatButton()
{
}
void autoFlatButton::enterEvent(QEvent *event)
{
Q_UNUSED(event)
setFlat(false);
}
void autoFlatButton::leaveEvent(QEvent *event)
{
Q_UNUSED(event)
setFlat(true);
}