Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qshortcut.h
Go to the documentation of this file.
1// Copyright (C) 2019 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QSHORTCUT_H
6#define QSHORTCUT_H
7
8#include <QtGui/qtguiglobal.h>
9#include <QtGui/qkeysequence.h>
10#include <QtCore/qobject.h>
11
13
14QT_BEGIN_NAMESPACE
15
16class QShortcutPrivate;
17class QWindow;
18
19class Q_GUI_EXPORT QShortcut : public QObject
20{
21 Q_OBJECT
22 Q_DECLARE_PRIVATE(QShortcut)
23 Q_PROPERTY(QKeySequence key READ key WRITE setKey)
24 Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled)
25 Q_PROPERTY(bool autoRepeat READ autoRepeat WRITE setAutoRepeat)
26 Q_PROPERTY(Qt::ShortcutContext context READ context WRITE setContext)
27public:
28 explicit QShortcut(QObject *parent);
29 explicit QShortcut(const QKeySequence& key, QObject *parent,
30 const char *member = nullptr, const char *ambiguousMember = nullptr,
31 Qt::ShortcutContext context = Qt::WindowShortcut);
32 explicit QShortcut(QKeySequence::StandardKey key, QObject *parent,
33 const char *member = nullptr, const char *ambiguousMember = nullptr,
34 Qt::ShortcutContext context = Qt::WindowShortcut);
35
36#ifdef Q_QDOC
37 template<typename Functor>
38 QShortcut(const QKeySequence &key, QObject *parent,
39 Functor functor,
40 Qt::ShortcutContext shortcutContext = Qt::WindowShortcut);
41 template<typename Functor>
42 QShortcut(const QKeySequence &key, QObject *parent,
43 const QObject *context, Functor functor,
44 Qt::ShortcutContext shortcutContext = Qt::WindowShortcut);
45 template<typename Functor, typename FunctorAmbiguous>
46 QShortcut(const QKeySequence &key, QObject *parent,
47 const QObject *context1, Functor functor,
48 FunctorAmbiguous functorAmbiguous,
49 Qt::ShortcutContext shortcutContext = Qt::WindowShortcut);
50 template<typename Functor, typename FunctorAmbiguous>
51 QShortcut(const QKeySequence &key, QObject *parent,
52 const QObject *context1, Functor functor,
53 const QObject *context2, FunctorAmbiguous functorAmbiguous,
54 Qt::ShortcutContext shortcutContext = Qt::WindowShortcut);
55
56 template<typename Functor>
57 QShortcut(QKeySequence::StandardKey key, QObject *parent,
58 Functor functor,
59 Qt::ShortcutContext shortcutContext = Qt::WindowShortcut);
60 template<typename Functor>
61 QShortcut(QKeySequence::StandardKey key, QObject *parent,
62 const QObject *context, Functor functor,
63 Qt::ShortcutContext shortcutContext = Qt::WindowShortcut);
64 template<typename Functor, typename FunctorAmbiguous>
65 QShortcut(QKeySequence::StandardKey key, QObject *parent,
66 const QObject *context1, Functor functor,
67 FunctorAmbiguous functorAmbiguous,
68 Qt::ShortcutContext shortcutContext = Qt::WindowShortcut);
69 template<typename Functor, typename FunctorAmbiguous>
70 QShortcut(QKeySequence::StandardKey key, QObject *parent,
71 const QObject *context1, Functor functor,
72 const QObject *context2, FunctorAmbiguous functorAmbiguous,
73 Qt::ShortcutContext shortcutContext = Qt::WindowShortcut);
74#else
75#ifndef QT_NO_CONTEXTLESS_CONNECT
76 template<typename Func1>
77 QShortcut(const QKeySequence &key, QObject *parent,
78 Func1 slot1,
79 Qt::ShortcutContext context = Qt::WindowShortcut)
80 : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
81 {
82 connect(this, &QShortcut::activated, std::move(slot1));
83 }
84#endif
85 template<class Obj1, typename Func1>
86 QShortcut(const QKeySequence &key, QObject *parent,
87 const Obj1 *object1, Func1 slot1,
88 Qt::ShortcutContext context = Qt::WindowShortcut,
89 typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0)
90 : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
91 {
92 connect(this, &QShortcut::activated, object1, std::move(slot1));
93 }
94 template<class Obj1, typename Func1, typename Func2>
95 QShortcut(const QKeySequence &key, QObject *parent,
96 const Obj1 *object1, Func1 slot1, Func2 slot2,
97 Qt::ShortcutContext context = Qt::WindowShortcut,
98 typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0)
99 : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
100 {
101 connect(this, &QShortcut::activated, object1, std::move(slot1));
102 connect(this, &QShortcut::activatedAmbiguously, object1, std::move(slot2));
103 }
104 template<class Obj1, typename Func1, class Obj2, typename Func2>
105 QShortcut(const QKeySequence &key, QObject *parent,
106 const Obj1 *object1, Func1 slot1,
107 const Obj2 *object2, Func2 slot2,
108 Qt::ShortcutContext context = Qt::WindowShortcut,
109 typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0,
110 typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj2*>::Value>::type* = 0)
111 : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
112 {
113 connect(this, &QShortcut::activated, object1, std::move(slot1));
114 connect(this, &QShortcut::activatedAmbiguously, object2, std::move(slot2));
115 }
116
117 template<typename Func1>
118 QShortcut(QKeySequence::StandardKey key, QObject *parent,
119 Func1 slot1,
120 Qt::ShortcutContext context = Qt::WindowShortcut)
121 : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
122 {
123 connect(this, &QShortcut::activated, std::move(slot1));
124 }
125 template<class Obj1, typename Func1>
126 QShortcut(QKeySequence::StandardKey key, QObject *parent,
127 const Obj1 *object1, Func1 slot1,
128 Qt::ShortcutContext context = Qt::WindowShortcut,
129 typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0)
130 : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
131 {
132 connect(this, &QShortcut::activated, object1, std::move(slot1));
133 }
134 template<class Obj1, typename Func1, typename Func2>
135 QShortcut(QKeySequence::StandardKey key, QObject *parent,
136 const Obj1 *object1, Func1 slot1, Func2 slot2,
137 Qt::ShortcutContext context = Qt::WindowShortcut,
138 typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0)
139 : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
140 {
141 connect(this, &QShortcut::activated, object1, std::move(slot1));
142 connect(this, &QShortcut::activatedAmbiguously, object1, std::move(slot2));
143 }
144 template<class Obj1, typename Func1, class Obj2, typename Func2>
145 QShortcut(QKeySequence::StandardKey key, QObject *parent,
146 const Obj1 *object1, Func1 slot1,
147 const Obj2 *object2, Func2 slot2,
148 Qt::ShortcutContext context = Qt::WindowShortcut,
149 typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0,
150 typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj2*>::Value>::type* = 0)
151 : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
152 {
153 connect(this, &QShortcut::activated, object1, std::move(slot1));
154 connect(this, &QShortcut::activatedAmbiguously, object2, std::move(slot2));
155 }
156#endif
157
158 ~QShortcut();
159
160 void setKey(const QKeySequence& key);
161 QKeySequence key() const;
162 void setKeys(QKeySequence::StandardKey key);
163 void setKeys(const QList<QKeySequence> &keys);
164 QList<QKeySequence> keys() const;
165
166 void setEnabled(bool enable);
167 bool isEnabled() const;
168
169 void setContext(Qt::ShortcutContext context);
170 Qt::ShortcutContext context() const;
171
172 void setAutoRepeat(bool on);
173 bool autoRepeat() const;
174
175#if QT_DEPRECATED_SINCE(6,0)
176 QT_DEPRECATED_VERSION_6_0 int id() const;
177#endif
178
179 void setWhatsThis(const QString &text);
180 QString whatsThis() const;
181
182#if QT_DEPRECATED_SINCE(6,0)
183#ifdef Q_QDOC
184 QWidget *parentWidget() const;
185#else
186 template<typename T = QWidget*>
187 QT_DEPRECATED_VERSION_X_6_0("Use parent() and qobject_cast instead")
188 inline T parentWidget() const
189 { return static_cast<T>(QObject::parent()); }
190#endif
191#endif
192
193Q_SIGNALS:
194 void activated();
195 void activatedAmbiguously();
196
197protected:
198 bool event(QEvent *e) override;
199};
200
201QT_END_NAMESPACE
202
203#endif // QSHORTCUT_H
The QShortcut class is used to create keyboard shortcuts.
Definition qshortcut.h:20
Combined button and popup list for selecting options.
#define QAPP_CHECK(functionName)
Definition qaction.cpp:19
#define qApp
QT_REQUIRE_CONFIG(shortcut)