tooltipbutton.h 896 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. ~TooltipButton();
  11. void enterEvent(QEvent *) override;
  12. void leaveEvent(QEvent *) override;
  13. void moveEvent(QMoveEvent *) override;
  14. void resizeEvent(QResizeEvent *) override;
  15. void setTooltipParentWidget(QWidget *);
  16. void setTooltipText(QString text);
  17. private:
  18. void updateTooltipPosition();
  19. signals:
  20. private:
  21. QWidget* _tooltip_parent_widget = nullptr;
  22. QLabel* _tooltip_label = nullptr;
  23. QWidget* _tooltip_label_arrow = nullptr;
  24. QGraphicsOpacityEffect *_tooltip_opacity_effect = nullptr;
  25. QGraphicsOpacityEffect *_tooltip_arrow_opacity_effect = nullptr;
  26. };
  27. #endif // TOOLTIPBUTTON_H