File indexing completed on 2026-08-25 09:20:02
0001
0002
0003
0004
0005 #ifndef QPUSHBUTTON_H
0006 #define QPUSHBUTTON_H
0007
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtWidgets/qabstractbutton.h>
0010
0011 QT_REQUIRE_CONFIG(pushbutton);
0012
0013 QT_BEGIN_NAMESPACE
0014
0015
0016 class QPushButtonPrivate;
0017 class QMenu;
0018 class QStyleOptionButton;
0019
0020 class Q_WIDGETS_EXPORT QPushButton : public QAbstractButton
0021 {
0022 Q_OBJECT
0023
0024 Q_PROPERTY(bool autoDefault READ autoDefault WRITE setAutoDefault)
0025 Q_PROPERTY(bool default READ isDefault WRITE setDefault)
0026 Q_PROPERTY(bool flat READ isFlat WRITE setFlat)
0027
0028 public:
0029 explicit QPushButton(QWidget *parent = nullptr);
0030 explicit QPushButton(const QString &text, QWidget *parent = nullptr);
0031 QPushButton(const QIcon& icon, const QString &text, QWidget *parent = nullptr);
0032 ~QPushButton();
0033
0034 QSize sizeHint() const override;
0035 QSize minimumSizeHint() const override;
0036
0037 bool autoDefault() const;
0038 void setAutoDefault(bool);
0039 bool isDefault() const;
0040 void setDefault(bool);
0041
0042 #if QT_CONFIG(menu)
0043 void setMenu(QMenu* menu);
0044 QMenu* menu() const;
0045 #endif
0046
0047 void setFlat(bool);
0048 bool isFlat() const;
0049
0050 public Q_SLOTS:
0051 #if QT_CONFIG(menu)
0052 void showMenu();
0053 #endif
0054
0055 protected:
0056 bool event(QEvent *e) override;
0057 void paintEvent(QPaintEvent *) override;
0058 void keyPressEvent(QKeyEvent *) override;
0059 void focusInEvent(QFocusEvent *) override;
0060 void focusOutEvent(QFocusEvent *) override;
0061 void mouseMoveEvent(QMouseEvent *) override;
0062 virtual void initStyleOption(QStyleOptionButton *option) const;
0063 bool hitButton(const QPoint &pos) const override;
0064 QPushButton(QPushButtonPrivate &dd, QWidget* parent = nullptr);
0065
0066 private:
0067 Q_DISABLE_COPY(QPushButton)
0068 Q_DECLARE_PRIVATE(QPushButton)
0069 };
0070
0071 QT_END_NAMESPACE
0072
0073 #endif