diff --git a/src/widgets/bottomnavigation.cc b/src/widgets/bottomnavigation.cc index 9da4ca4..1dc57d2 100644 --- a/src/widgets/bottomnavigation.cc +++ b/src/widgets/bottomnavigation.cc @@ -4,6 +4,7 @@ #include #include #include +#include DWIDGET_USE_NAMESPACE @@ -40,6 +41,14 @@ BottomNavigation::BottomNavigation(QWidget *parent) ":/resources/Mail.svg", ":/resources/Mail.svg"); + QList list; + + list << sinaBtn << twitterBtn << facebook << offical << community << feedback << thank << mail; + + for (QWidget *w : list) { + w->installEventFilter(this); + } + connect(sinaBtn, &DImageButton::clicked, this, &BottomNavigation::onButtonClicked); connect(twitterBtn, &DImageButton::clicked, this, &BottomNavigation::onButtonClicked); connect(facebook, &DImageButton::clicked, this, &BottomNavigation::onButtonClicked); @@ -80,3 +89,16 @@ void BottomNavigation::onButtonClicked() QDesktopServices::openUrl(QUrl(m_buttons[button])); } + +bool BottomNavigation::eventFilter(QObject *watched, QEvent *event) +{ + if (event->type() == QEvent::Enter) { + setCursor(Qt::PointingHandCursor); + } + + if (event->type() == QEvent::Leave) { + setCursor(Qt::ArrowCursor); + } + + return QWidget::eventFilter(watched, event); +} diff --git a/src/widgets/bottomnavigation.h b/src/widgets/bottomnavigation.h index 0df6581..762043b 100644 --- a/src/widgets/bottomnavigation.h +++ b/src/widgets/bottomnavigation.h @@ -13,6 +13,9 @@ class BottomNavigation : public QWidget private slots: void onButtonClicked(); +protected: + bool eventFilter(QObject *watched, QEvent *event) Q_DECL_OVERRIDE; + private: QMap m_buttons; };