tooltipbutton.h 871 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #ifndef TOOLTIPBUTTON_H
  2. #define TOOLTIPBUTTON_H
  3. #include <QLabel>
  4. #include <QGraphicsOpacityEffect>
  5. class TooltipButton : public QLabel
  6. {
  7. Q_OBJECT
  8. public:
  9. explicit TooltipButton(QWidget *parent = nullptr);
  10. void enterEvent(QEvent *) override;
  11. void leaveEvent(QEvent *) override;
  12. void moveEvent(QMoveEvent *) override;
  13. void resizeEvent(QResizeEvent *) override;
  14. void setTooltipParentWidget(QWidget *);
  15. void setTooltipText(QString text);
  16. private:
  17. void updateTooltipPosition();
  18. signals:
  19. private:
  20. QWidget* _tooltip_parent_widget = nullptr;
  21. QLabel* _tooltip_label = nullptr;
  22. QWidget* _tooltip_label_arrow = nullptr;
  23. QGraphicsOpacityEffect *_tooltip_opacity_effect = nullptr;
  24. QGraphicsOpacityEffect *_tooltip_arrow_opacity_effect = nullptr;
  25. };
  26. #endif // TOOLTIPBUTTON_H