| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #ifndef BMPBUTTON_H
- #define BMPBUTTON_H
- #include <QAbstractButton>
- #include <QScopedPointer>
- class BmpButtonPrivate;
- class BmpButton : public QAbstractButton
- {
- Q_OBJECT
- Q_DISABLE_COPY(BmpButton)
- public:
- enum ButtonStatus {
- B_Normal = 0,
- B_Press,
- B_Check,
- };
- enum Type {
- T_Translate = 0,
- T_NoTranslate = 1
- };
- class CustomString {
- public:
- explicit CustomString(const QString& string, const bool translate) {
- this->string = string;
- this->translate = translate;
- }
- ~CustomString() {}
- QString string;
- bool translate;
- };
- explicit BmpButton(QWidget *parent = NULL);
- ~BmpButton();
- void setNormalBmpPath(const QString &path);
- void setPressBmpPath(const QString &path);
- void setCheckBmpPath(const QString &path);
- void setStatus(const BmpButton::ButtonStatus &status);
- BmpButton::ButtonStatus getStatus();
- void enableLongPress(const bool flag);
- void enableLongPressRestore(const bool flag);
- void setLanguageType(const BmpButton::Type type);
- void setCustomText(const QList<BmpButton::CustomString>& text);
- protected:
- bool event(QEvent* event);
- void styleChange();
- void mousePressEvent(QMouseEvent* event);
- void mouseReleaseEvent(QMouseEvent* event);
- void paintEvent(QPaintEvent* event);
- virtual void normalPaint(QPainter& painter);
- virtual void pressPaint(QPainter& painter);
- virtual void checkPaint(QPainter& painter);
- signals:
- void longPressed();
- private slots:
- void onTimeout();
- //signals:
- // void bmpButtomPress();
- // void bmpButtonRelease();
- private:
- friend class BmpButtonPrivate;
- QScopedPointer<BmpButtonPrivate> m_Private;
- };
- #endif // BMPBUTTON_H
|