DtkWidget 5.6.0.2
DTK Widget module
dimagebutton.h
1// SPDX-FileCopyrightText: 2015 - 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DIMAGEBUTTON_H
6#define DIMAGEBUTTON_H
7
8#include <QObject>
9#include <QWidget>
10#include <QLabel>
11#include <QPixmap>
12
13#include <dtkwidget_global.h>
14#include <DObject>
15
16DWIDGET_BEGIN_NAMESPACE
17class DImageButtonPrivate;
18class LIBDTKWIDGETSHARED_EXPORT D_DECL_DEPRECATED_X("Use DIconButton") DImageButton : public QLabel, public DTK_CORE_NAMESPACE::DObject
19{
20 Q_OBJECT
21 Q_PROPERTY(QString normalPic READ getNormalPic WRITE setNormalPic DESIGNABLE true)
22 Q_PROPERTY(QString hoverPic READ getHoverPic WRITE setHoverPic DESIGNABLE true)
23 Q_PROPERTY(QString pressPic READ getPressPic WRITE setPressPic DESIGNABLE true)
24 Q_PROPERTY(QString checkedPic READ getCheckedPic WRITE setCheckedPic DESIGNABLE true)
25 Q_PROPERTY(QString disabledPic READ getDisabledPic WRITE setDisabledPic DESIGNABLE true)
26 Q_PROPERTY(bool checked READ isChecked WRITE setChecked NOTIFY checkedChanged)
27 Q_PROPERTY(bool checkable READ isCheckable WRITE setCheckable)
28
29public:
30 DImageButton(QWidget *parent = 0);
31
32 DImageButton(const QString &normalPic, const QString &hoverPic,
33 const QString &pressPic, QWidget *parent = 0);
34
35 DImageButton(const QString &normalPic, const QString &hoverPic,
36 const QString &pressPic, const QString &checkedPic, QWidget *parent = 0);
37
39
40 void setEnabled(bool enabled);
41 void setDisabled(bool disabled);
42
43 void setChecked(bool flag);
44 void setCheckable(bool flag);
45 bool isChecked() const;
46 bool isCheckable() const;
47
48 void setNormalPic(const QString &normalPic);
49 void setHoverPic(const QString &hoverPic);
50 void setPressPic(const QString &pressPic);
51 void setCheckedPic(const QString &checkedPic);
52 void setDisabledPic(const QString &disabledPic);
53
54 const QString getNormalPic() const;
55 const QString getHoverPic() const;
56 const QString getPressPic() const;
57 const QString getCheckedPic() const;
58 const QString getDisabledPic() const;
59
60 enum State {
61 Normal,
62 Hover,
63 Press,
64 Checked,
65 Disabled
66 };
67
68 void setState(State state);
69 State getState() const;
70
71Q_SIGNALS:
72 void clicked();
73 void checkedChanged(bool checked);
75
76protected:
77 DImageButton(DImageButtonPrivate &q, QWidget *parent);
78 void enterEvent(QEvent *event) Q_DECL_OVERRIDE;
79 void leaveEvent(QEvent *event) Q_DECL_OVERRIDE;
80 void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
81 void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
82 void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
83
84private:
85 Q_DISABLE_COPY(DImageButton)
86 D_DECLARE_PRIVATE(DImageButton)
87};
88
89DWIDGET_END_NAMESPACE
90
91#endif // DIMAGEBUTTON_H
Definition: diconbutton.h:24
Definition: dimagebutton_p.h:15
The DImageButton class provides an easy way to create image based buttons.
Definition: dimagebutton.h:19
void stateChanged()
当按钮的状态发生变化时会发出该信号
void checkedChanged(bool checked)
当按钮的选择状态 checked 发生改变时会发出该信号
void clicked()
当按钮被点击时会发出该信号