30class Q_GUI_EXPORT
QAction :
public QObject
33 Q_DECLARE_PRIVATE(QAction)
35 Q_PROPERTY(
bool checkable READ isCheckable WRITE setCheckable NOTIFY checkableChanged FINAL)
36 Q_PROPERTY(
bool checked READ isChecked WRITE setChecked NOTIFY toggled)
37 Q_PROPERTY(
bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged
38 RESET resetEnabled FINAL)
39 Q_PROPERTY(QIcon icon READ icon WRITE setIcon NOTIFY changed)
40 Q_PROPERTY(QString text READ text WRITE setText NOTIFY changed)
41 Q_PROPERTY(QString iconText READ iconText WRITE setIconText NOTIFY changed)
42 Q_PROPERTY(QString toolTip READ toolTip WRITE setToolTip NOTIFY changed)
43 Q_PROPERTY(QString statusTip READ statusTip WRITE setStatusTip NOTIFY changed)
44 Q_PROPERTY(QString whatsThis READ whatsThis WRITE setWhatsThis NOTIFY changed)
45 Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY changed)
46#if QT_CONFIG(shortcut)
47 Q_PROPERTY(QKeySequence shortcut READ shortcut WRITE setShortcut NOTIFY changed)
48 Q_PROPERTY(Qt::ShortcutContext shortcutContext READ shortcutContext WRITE setShortcutContext
50 Q_PROPERTY(
bool autoRepeat READ autoRepeat WRITE setAutoRepeat NOTIFY changed)
52 Q_PROPERTY(
bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged FINAL)
53 Q_PROPERTY(MenuRole menuRole READ menuRole WRITE setMenuRole NOTIFY changed)
54 Q_PROPERTY(
bool iconVisibleInMenu READ isIconVisibleInMenu WRITE setIconVisibleInMenu
56 Q_PROPERTY(
bool shortcutVisibleInContextMenu READ isShortcutVisibleInContextMenu
57 WRITE setShortcutVisibleInContextMenu NOTIFY changed)
58 Q_PROPERTY(Priority priority READ priority WRITE setPriority NOTIFY changed)
62 enum MenuRole { NoRole = 0, TextHeuristicRole, ApplicationSpecificRole, AboutQtRole,
63 AboutRole, PreferencesRole, QuitRole };
65 enum Priority { LowPriority = 0,
69 explicit QAction(QObject *parent =
nullptr);
70 explicit QAction(
const QString &text, QObject *parent =
nullptr);
71 explicit QAction(
const QIcon &icon,
const QString &text, QObject *parent =
nullptr);
75 QList<QObject *> associatedObjects()
const;
77#if QT_DEPRECATED_SINCE(6
,0
)
79 QWidget *parentWidget()
const;
80 QList<QWidget*> associatedWidgets()
const;
81 QList<QGraphicsWidget*> associatedGraphicsWidgets()
const;
84
85
86
87 template<
typename T = QWidget*>
88 QT_DEPRECATED_VERSION_X_6_0(
"Use parent() with qobject_cast() instead")
89 T parentWidget()
const
91 auto result = parent();
92 while (result && !qobject_cast<T>(result))
93 result = result->parent();
94 return static_cast<T>(result);
97 template<
typename T = QWidget*>
98 QT_DEPRECATED_VERSION_X_6_0(
"Use associatedObjects() with qobject_cast() instead")
99 QList<T> associatedWidgets()
const
102 for (
auto object : associatedObjects())
103 if (
auto widget = qobject_cast<T>(object))
104 result.append(widget);
107 template<
typename T = QGraphicsWidget*>
108 QT_DEPRECATED_VERSION_X_6_0(
"Use associatedObjects() with qobject_cast() instead")
109 QList<T> associatedGraphicsWidgets()
const
112 for (
auto object : associatedObjects())
113 if (
auto graphicsWidget = qobject_cast<T>(object))
114 result.append(graphicsWidget);
120 void setActionGroup(QActionGroup *group);
121 QActionGroup *actionGroup()
const;
122 void setIcon(
const QIcon &icon);
125 void setText(
const QString &text);
126 QString text()
const;
128 void setIconText(
const QString &text);
129 QString iconText()
const;
131 void setToolTip(
const QString &tip);
132 QString toolTip()
const;
134 void setStatusTip(
const QString &statusTip);
135 QString statusTip()
const;
137 void setWhatsThis(
const QString &what);
138 QString whatsThis()
const;
140 void setPriority(Priority priority);
141 Priority priority()
const;
143 void setSeparator(
bool b);
144 bool isSeparator()
const;
146#if QT_CONFIG(shortcut)
147 void setShortcut(
const QKeySequence &shortcut);
148 QKeySequence shortcut()
const;
150 void setShortcuts(
const QList<QKeySequence> &shortcuts);
151 void setShortcuts(QKeySequence::StandardKey);
152 QList<QKeySequence> shortcuts()
const;
154 void setShortcutContext(Qt::ShortcutContext context);
155 Qt::ShortcutContext shortcutContext()
const;
157 void setAutoRepeat(
bool);
158 bool autoRepeat()
const;
161 void setFont(
const QFont &font);
164 void setCheckable(
bool);
165 bool isCheckable()
const;
167 QVariant data()
const;
168 void setData(
const QVariant &var);
170 bool isChecked()
const;
172 bool isEnabled()
const;
174 bool isVisible()
const;
176 enum ActionEvent { Trigger, Hover };
177 void activate(ActionEvent event);
179 void setMenuRole(MenuRole menuRole);
180 MenuRole menuRole()
const;
184 void setMenu(QMenu *menu);
186 template<
typename T = QMenu*>
189 return qobject_cast<T>(menuObject());
191 template<
typename T = QMenu*>
198 void setIconVisibleInMenu(
bool visible);
199 bool isIconVisibleInMenu()
const;
201 void setShortcutVisibleInContextMenu(
bool show);
202 bool isShortcutVisibleInContextMenu()
const;
204 bool showStatusText(QObject *object =
nullptr);
207 bool event(QEvent *) override;
208 QAction(QActionPrivate &dd, QObject *parent);
211 void trigger() { activate(Trigger); }
212 void hover() { activate(Hover); }
213 void setChecked(
bool);
215 void setEnabled(
bool);
217 inline void setDisabled(
bool b) { setEnabled(!b); }
218 void setVisible(
bool);
222 void enabledChanged(
bool enabled);
223 void checkableChanged(
bool checkable);
224 void visibleChanged();
225 void triggered(
bool checked =
false);
230 Q_DISABLE_COPY(QAction)
231 friend class QActionGroup;
232 friend class QWidget;
234 friend class QMenuPrivate;
235 friend class QToolButton;
236 friend class QGraphicsWidget;
238 QObject *menuObject()
const;
239 void setMenuObject(QObject *object);