C++ (Qt)class HaloButton: public QPushButton{ Q_OBJECT public: explicit HaloButton(QWidget *parent = 0); protected: void enterEvent(QEvent *e); void leaveEvent(QEvent *e); private: QGraphicsDropShadowEffect *halo;}; HaloButton::HaloButton(QWidget *parent): QPushButton(parent){ halo = new QGraphicsDropShadowEffect(this); halo->setXOffset(0); halo->setYOffset(0); halo->setBlurRadius(16.0); halo->setColor(QColor(255, 0, 0)); halo->setEnabled(false); setGraphicsEffect(halo);} void HaloButton::enterEvent(QEvent *e){ halo->setEnabled(true); QWidget::enterEvent(e);} void HaloButton::leaveEvent(QEvent *e){ halo->setEnabled(false); QWidget::leaveEvent(e);}