#ifndef QIRREGULARBUTTON_H #define QIRREGULARBUTTON_H #include #include "Config.h" class IrregularButton : public QPushButton { Q_OBJECT public: explicit IrregularButton(QWidget* parent = nullptr); explicit IrregularButton(const QString& text, QWidget* parent = nullptr); IrregularButton(const QIcon& icon, const QString& text, QWidget* parent = nullptr); void SetStartEnd(const QPointF& start, const QPointF& end) { m_start = start; m_end = end; } void SetDetailedType(DetailedType dt) { m_detailedType = dt; } DetailedType GetDetailedType() const { return m_detailedType; } void SetBtnName(const QString& btnName) { m_btnName = btnName; } const QString GetBtnName() const { return m_btnName;} void OnEmitEnter(); signals: void Enter(const QPointF& start, const QPointF& end); void Leave(); protected: bool event(QEvent* e) override; //void enterEvent(QEnterEvent* event) override; //void leaveEvent(QEvent* event) override; void mousePressEvent(QMouseEvent* e) override; void mouseReleaseEvent(QMouseEvent* e) override; QPointF GetEndPoint(const QPointF& target); void InitParentWidgetSlot(QWidget* parent); private: QPointF m_start; QPointF m_end; DetailedType m_detailedType; QString m_btnName; bool m_bTouchEnd = false; }; #endif // QIRREGULARBUTTON_H