48 lines
1.3 KiB
C++
48 lines
1.3 KiB
C++
#ifndef QIRREGULARBUTTON_H
|
|
#define QIRREGULARBUTTON_H
|
|
|
|
#include <QPushButton>
|
|
|
|
#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
|