File indexing completed on 2026-09-13 09:22:50
0001
0002
0003
0004
0005
0006 #ifndef QKEYSEQUENCEEDIT_H
0007 #define QKEYSEQUENCEEDIT_H
0008
0009 #include <QtWidgets/qtwidgetsglobal.h>
0010 #include <QtWidgets/qwidget.h>
0011
0012 QT_REQUIRE_CONFIG(keysequenceedit);
0013
0014 QT_BEGIN_NAMESPACE
0015
0016 class QKeySequenceEditPrivate;
0017 class Q_WIDGETS_EXPORT QKeySequenceEdit : public QWidget
0018 {
0019 Q_OBJECT
0020 Q_PROPERTY(QKeySequence keySequence READ keySequence WRITE setKeySequence
0021 NOTIFY keySequenceChanged USER true)
0022 Q_PROPERTY(bool clearButtonEnabled READ isClearButtonEnabled WRITE setClearButtonEnabled)
0023 Q_PROPERTY(qsizetype maximumSequenceLength READ maximumSequenceLength WRITE setMaximumSequenceLength)
0024 Q_PROPERTY(QList<QKeyCombination> finishingKeyCombinations READ finishingKeyCombinations WRITE setFinishingKeyCombinations)
0025
0026 public:
0027 explicit QKeySequenceEdit(QWidget *parent = nullptr);
0028 explicit QKeySequenceEdit(const QKeySequence &keySequence, QWidget *parent = nullptr);
0029 ~QKeySequenceEdit();
0030
0031 QKeySequence keySequence() const;
0032 qsizetype maximumSequenceLength() const;
0033
0034 void setClearButtonEnabled(bool enable);
0035 bool isClearButtonEnabled() const;
0036
0037 void setFinishingKeyCombinations(const QList<QKeyCombination> &finishingKeyCombinations);
0038 QList<QKeyCombination> finishingKeyCombinations() const;
0039
0040 public Q_SLOTS:
0041 void setKeySequence(const QKeySequence &keySequence);
0042 void clear();
0043 void setMaximumSequenceLength(qsizetype count);
0044
0045 Q_SIGNALS:
0046 void editingFinished();
0047 void keySequenceChanged(const QKeySequence &keySequence);
0048
0049 protected:
0050 QKeySequenceEdit(QKeySequenceEditPrivate &d, QWidget *parent, Qt::WindowFlags f);
0051
0052 bool event(QEvent *) override;
0053 void keyPressEvent(QKeyEvent *) override;
0054 void keyReleaseEvent(QKeyEvent *) override;
0055 void timerEvent(QTimerEvent *) override;
0056 void focusOutEvent(QFocusEvent *) override;
0057
0058 private:
0059 Q_DISABLE_COPY(QKeySequenceEdit)
0060 Q_DECLARE_PRIVATE(QKeySequenceEdit)
0061 };
0062
0063 QT_END_NAMESPACE
0064
0065 #endif