29class Q_GUI_EXPORT
QAction :
public QObject
32 Q_DECLARE_PRIVATE(QAction)
34 Q_PROPERTY(
bool checkable READ isCheckable WRITE setCheckable NOTIFY checkableChanged FINAL)
35 Q_PROPERTY(
bool checked READ isChecked WRITE setChecked NOTIFY toggled)
36 Q_PROPERTY(
bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged
37 RESET resetEnabled FINAL)
38 Q_PROPERTY(QIcon icon READ icon WRITE setIcon NOTIFY changed)
39 Q_PROPERTY(QString text READ text WRITE setText NOTIFY changed)
40 Q_PROPERTY(QString iconText READ iconText WRITE setIconText NOTIFY changed)
41 Q_PROPERTY(QString toolTip READ toolTip WRITE setToolTip NOTIFY changed)
42 Q_PROPERTY(QString statusTip READ statusTip WRITE setStatusTip NOTIFY changed)
43 Q_PROPERTY(QString whatsThis READ whatsThis WRITE setWhatsThis NOTIFY changed)
44 Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY changed)
45#if QT_CONFIG(shortcut)
46 Q_PROPERTY(QKeySequence shortcut READ shortcut WRITE setShortcut NOTIFY changed)
47 Q_PROPERTY(Qt::ShortcutContext shortcutContext READ shortcutContext WRITE setShortcutContext
49 Q_PROPERTY(
bool autoRepeat READ autoRepeat WRITE setAutoRepeat NOTIFY changed)
51 Q_PROPERTY(
bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged FINAL)
52 Q_PROPERTY(MenuRole menuRole READ menuRole WRITE setMenuRole NOTIFY changed)
53 Q_PROPERTY(
bool iconVisibleInMenu READ isIconVisibleInMenu WRITE setIconVisibleInMenu
55 Q_PROPERTY(
bool shortcutVisibleInContextMenu READ isShortcutVisibleInContextMenu
56 WRITE setShortcutVisibleInContextMenu NOTIFY changed)
57 Q_PROPERTY(Priority priority READ priority WRITE setPriority NOTIFY changed)
61 enum MenuRole { NoRole = 0, TextHeuristicRole, ApplicationSpecificRole, AboutQtRole,
62 AboutRole, PreferencesRole, QuitRole };
64 enum Priority { LowPriority = 0,
68 explicit QAction(QObject *parent =
nullptr);
69 explicit QAction(
const QString &text, QObject *parent =
nullptr);
70 explicit QAction(
const QIcon &icon,
const QString &text, QObject *parent =
nullptr);
74 QList<QObject *> associatedObjects()
const;
76#if QT_DEPRECATED_SINCE(6
,0
)
78 QWidget *parentWidget()
const;
79 QList<QWidget*> associatedWidgets()
const;
80 QList<QGraphicsWidget*> associatedGraphicsWidgets()
const;
83
84
85
86 template<
typename T = QWidget*>
87 QT_DEPRECATED_VERSION_X_6_0(
"Use parent() with qobject_cast() instead")
88 T parentWidget()
const
90 auto result = parent();
91 while (result && !qobject_cast<T>(result))
92 result = result->parent();
93 return static_cast<T>(result);
96 template<
typename T = QWidget*>
97 QT_DEPRECATED_VERSION_X_6_0(
"Use associatedObjects() with qobject_cast() instead")
98 QList<T> associatedWidgets()
const
101 for (
auto object : associatedObjects())
102 if (
auto widget = qobject_cast<T>(object))
103 result.append(widget);
106 template<
typename T = QGraphicsWidget*>
107 QT_DEPRECATED_VERSION_X_6_0(
"Use associatedObjects() with qobject_cast() instead")
108 QList<T> associatedGraphicsWidgets()
const
111 for (
auto object : associatedObjects())
112 if (
auto graphicsWidget = qobject_cast<T>(object))
113 result.append(graphicsWidget);
119 void setActionGroup(QActionGroup *group);
120 QActionGroup *actionGroup()
const;
121 void setIcon(
const QIcon &icon);
124 void setText(
const QString &text);
125 QString text()
const;
127 void setIconText(
const QString &text);
128 QString iconText()
const;
130 void setToolTip(
const QString &tip);
131 QString toolTip()
const;
133 void setStatusTip(
const QString &statusTip);
134 QString statusTip()
const;
136 void setWhatsThis(
const QString &what);
137 QString whatsThis()
const;
139 void setPriority(Priority priority);
140 Priority priority()
const;
142 void setSeparator(
bool b);
143 bool isSeparator()
const;
145#if QT_CONFIG(shortcut)
146 void setShortcut(
const QKeySequence &shortcut);
147 QKeySequence shortcut()
const;
149 void setShortcuts(
const QList<QKeySequence> &shortcuts);
150 void setShortcuts(QKeySequence::StandardKey);
151 QList<QKeySequence> shortcuts()
const;
153 void setShortcutContext(Qt::ShortcutContext context);
154 Qt::ShortcutContext shortcutContext()
const;
156 void setAutoRepeat(
bool);
157 bool autoRepeat()
const;
160 void setFont(
const QFont &font);
163 void setCheckable(
bool);
164 bool isCheckable()
const;
166 QVariant data()
const;
167 void setData(
const QVariant &var);
169 bool isChecked()
const;
171 bool isEnabled()
const;
173 bool isVisible()
const;
175 enum ActionEvent { Trigger, Hover };
176 void activate(ActionEvent event);
178 void setMenuRole(MenuRole menuRole);
179 MenuRole menuRole()
const;
183 void setMenu(QMenu *menu);
185 template<
typename T = QMenu*>
188 return qobject_cast<T>(menuObject());
190 template<
typename T = QMenu*>
197 void setIconVisibleInMenu(
bool visible);
198 bool isIconVisibleInMenu()
const;
200 void setShortcutVisibleInContextMenu(
bool show);
201 bool isShortcutVisibleInContextMenu()
const;
203 bool showStatusText(QObject *object =
nullptr);
206 bool event(QEvent *) override;
207 QAction(QActionPrivate &dd, QObject *parent);
210 void trigger() { activate(Trigger); }
211 void hover() { activate(Hover); }
212 void setChecked(
bool);
214 void setEnabled(
bool);
216 inline void setDisabled(
bool b) { setEnabled(!b); }
217 void setVisible(
bool);
221 void enabledChanged(
bool enabled);
222 void checkableChanged(
bool checkable);
223 void visibleChanged();
224 void triggered(
bool checked =
false);
229 Q_DISABLE_COPY(QAction)
230 friend class QActionGroup;
231 friend class QWidget;
233 friend class QMenuPrivate;
234 friend class QToolButton;
235 friend class QGraphicsWidget;
237 QObject *menuObject()
const;
238 void setMenuObject(QObject *object);