Класс QAction
Класс QAction предоставляет абстракцию для пользовательских команд, которые могут быть добавлены в различные компоненты пользовательского интерфейса. Подробнее...
| Заголовок: | #include <QAction> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| С тех пор: | Qt 6.0 |
| Наследует: | QObject |
| Наследуется от: |
Открытые типы
| Перечисление | ActionEvent { Trigger, Hover } |
| Перечисление | MenuRole { NoRole, TextHeuristicRole, ApplicationSpecificRole, AboutQtRole, AboutRole, …, QuitRole } |
| Перечисление | Priority { LowPriority, NormalPriority, HighPriority } |
Свойства
|
|
Открытые функции
| QAction(const QIcon &icon, const QString &text, QObject *parent = nullptr) | |
| QAction(const QString &text, QObject *parent = nullptr) | |
| QAction(QObject *parent = nullptr) | |
| virtual | ~QAction() |
| QActionGroup * | actionGroup() const |
| void | activate(QAction::ActionEvent event) |
| QList<QObject *> | associatedObjects() const |
| bool | autoRepeat() const |
| QVariant | data() const |
| QFont | font() const |
| QIcon | icon() const |
| QString | iconText() const |
| bool | isCheckable() const |
| bool | isChecked() const |
| bool | isEnabled() const |
| bool | isIconVisibleInMenu() const |
| bool | isSeparator() const |
| bool | isShortcutVisibleInContextMenu() const |
| bool | isVisible() const |
| QAction::MenuRole | menuRole() const |
| QAction::Priority | priority() const |
| void | setActionGroup(QActionGroup *group) |
| void | setAutoRepeat(bool) |
| void | setCheckable(bool) |
| void | setData(const QVariant &data) |
| void | setFont(const QFont &font) |
| void | setIcon(const QIcon &icon) |
| void | setIconText(const QString &text) |
| void | setIconVisibleInMenu(bool visible) |
| void | setMenuRole(QAction::MenuRole menuRole) |
| void | setPriority(QAction::Priority priority) |
| void | setSeparator(bool b) |
| void | setShortcut(const QKeySequence &shortcut) |
| void | setShortcutContext(Qt::ShortcutContext context) |
| void | setShortcutVisibleInContextMenu(bool show) |
| void | setShortcuts(const QList<QKeySequence> &shortcuts) |
| void | setShortcuts(QKeySequence::StandardKey key) |
| void | setStatusTip(const QString &statusTip) |
| void | setText(const QString &text) |
| void | setToolTip(const QString &tip) |
| void | setWhatsThis(const QString &what) |
| QKeySequence | shortcut() const |
| Qt::ShortcutContext | shortcutContext() const |
| QList<QKeySequence> | shortcuts() const |
| bool | showStatusText(QObject *object = nullptr) |
| QString | statusTip() const |
| QString | text() const |
| QString | toolTip() const |
| QString | whatsThis() const |
Публичные слоты
| void | hover() |
| void | resetEnabled() |
| void | setChecked(bool) |
| void | setDisabled(bool b) |
| void | setEnabled(bool) |
| void | setVisible(bool) |
| void | toggle() |
| void | trigger() |
Сигналы
| void | changed() |
| void | checkableChanged(bool checkable) |
| void | enabledChanged(bool enabled) |
| void | hovered() |
| void | toggled(bool checked) |
| void | triggered(bool checked = false) |
| void | visibleChanged() |
Переопределённые защищённые функции
| virtual bool | event(QEvent *e) override |
Подробное описание
Во многих приложениях многие распространённые команды могут быть вызваны через меню, кнопки на панели инструментов и сочетания клавиш. Поскольку пользователь ожидает, что каждая команда будет выполняться одинаково, независимо от используемого пользовательского интерфейса, полезно представлять каждую команду как действие.
Действия могут быть добавлены в меню и панели инструментов и будут автоматически синхронизироваться. Например, в текстовом редакторе, если пользователь нажимает кнопку «Жирный» на панели инструментов, пункт меню «Жирный» будет автоматически помечен.
QAction может содержать значок, текст меню, сочетание клавиш, текст состояния, текст «Что это?», и всплывающую подсказку. Большинство из них можно задать в конструкторе. Их также можно задать независимо с помощью setIcon(), setText(), setIconText(), setShortcut(), setStatusTip(), setWhatsThis() и setToolTip(). Для пунктов меню можно установить индивидуальный шрифт с помощью setFont().
Рекомендуется создавать действия как дочерние элементы окна, в котором они используются. В большинстве случаев действия будут дочерними элементами главного окна приложения.
QAction в приложениях с виджетами
После создания QAction его следует добавить в соответствующее меню и панель инструментов, а затем подключить к слоту, который выполнит действие. Например:
const QIcon openIcon = QIcon::fromTheme("document-open", QIcon(":/images/open.png"));
QAction *openAct = new QAction(openIcon, tr("&Open..."), this);
openAct->setShortcuts(QKeySequence::Open);
openAct->setStatusTip(tr("Open an existing file"));
connect(openAct, &QAction::triggered, this, &MainWindow::open);
fileMenu->addAction(openAct);
fileToolBar->addAction(openAct); Действия добавляются к виджетам с помощью QWidget::addAction() или QGraphicsWidget::addAction(). Обратите внимание, что действие должно быть добавлено к виджету, прежде чем оно сможет быть использовано. Это также верно, когда сочетание клавиш должно быть глобальным (т. е., Qt::ApplicationShortcut как Qt::ShortcutContext).
Действия могут быть созданы как независимые объекты. Но они также могут быть созданы во время построения меню. Класс QMenu содержит удобные функции для создания действий, пригодных для использования в качестве пунктов меню.
См. также QMenu, QToolBar и Пример Qt Widgets - Приложение.
Документация по типам членов
перечисление QAction::ActionEvent
Это тип перечисления используется при вызове QAction::activate()
| Константа | Значение | Описание |
|---|---|---|
QAction::Trigger |
0 |
это вызовет испускание сигнала QAction::triggered(). |
QAction::Hover |
1 |
это вызовет испускание сигнала QAction::hovered(). |
перечисление QAction::MenuRole
Это перечисление описывает, как действие должно быть перемещено в меню приложения на macOS.
| Константа | Значение | Описание |
|---|---|---|
QAction::NoRole |
0 |
Это действие не должно быть помещено в меню приложения |
QAction::TextHeuristicRole |
1 |
Это действие должно быть помещено в меню приложения на основе текста действия, как описано в документации QMenuBar. |
QAction::ApplicationSpecificRole |
2 |
Это действие должно быть помещено в меню приложения с ролью, специфичной для приложения |
QAction::AboutQtRole |
3 |
Это действие обрабатывает пункт меню «О Qt». |
QAction::AboutRole |
4 |
Это действие должно быть размещено там, где находится пункт меню «О» в меню приложения. Текст пункта меню будет установлен в «О <название приложения>». Название приложения извлекается из файла Info.plist в пакете приложения (см. Qt для macOS — Развёртывание). |
QAction::PreferencesRole |
5 |
Это действие должно быть размещено там, где находится пункт меню «Настройки...» в меню приложения. |
QAction::QuitRole |
6 |
Это действие должно быть размещено там, где находится пункт меню «Выход» в меню приложения. |
Установка этого значения имеет эффект только для элементов, которые находятся в непосредственных меню панели меню, а не в подменю этих меню. Например, если у вас есть меню «Файл» в вашей панели меню, и меню «Файл» имеет подменю, установка MenuRole для действий в этом подменю не оказывает никакого эффекта. Они никогда не будут перемещены.
перечисление QAction::Priority
Это перечисление определяет приоритеты для действий в пользовательском интерфейсе.
| Константа | Значение | Описание |
|---|---|---|
QAction::LowPriority |
0 |
Действие не должно иметь приоритета в пользовательском интерфейсе. |
QAction::NormalPriority |
128 |
|
QAction::HighPriority |
256 |
Действие должно иметь приоритет в пользовательском интерфейсе. |
См. также priority.
Документация по свойствам
autoRepeat : bool
Это свойство определяет, может ли действие автоматически повторяться.
Если значение true, действие будет автоматически повторяться при удержании комбинации клавиш, при условии, что автоматическое повторение клавиш включено в системе. Значение по умолчанию — true.
Функции доступа:
| bool | autoRepeat() const |
| void | setAutoRepeat(bool) |
Сигнал уведомления:
| void | changed() |
checkable : bool
Это свойство определяет, является ли действие флажком.
Действие-флажок имеет состояние «включено/выключено». Например, в текстовом процессоре кнопка «Полужирный» на панели инструментов может быть либо включена, либо выключена. Действие, которое не является переключателем, является командным действием; командное действие просто выполняется, например, сохранение файла. По умолчанию это свойство равно false.
В некоторых ситуациях состояние одного переключателя должно зависеть от состояния других. Например, переключатели «Выравнивание по левому краю», «По центру» и «Выравнивание по правому краю» являются взаимоисключающими. Для достижения исключительного переключения добавьте соответствующие переключатели в QActionGroup со свойством QActionGroup::exclusive, установленным в true.
Функции доступа:
| bool | isCheckable() const |
| void | setCheckable(bool) |
Сигнал уведомления:
| void | checkableChanged(bool checkable) |
См. также setChecked().
checked : bool
Это свойство определяет, установлен ли флажок действия.
Только действия-флажки могут быть отмечены. По умолчанию это false (флажок не установлен).
Примечание: сигнал уведомления для этого свойства — toggled(). Поскольку переключение QAction изменяет его состояние, оно также будет испускать сигнал changed().
Функции доступа:
| bool | isChecked() const |
| void | setChecked(bool) |
Сигнал уведомления:
| void | toggled(bool checked) |
См. также checkable и toggled().
enabled : bool
Это свойство определяет, включено ли действие.
Отключенные действия не могут быть выбраны пользователем. Они не исчезают из меню или панелей инструментов, но отображаются таким образом, который указывает на то, что они недоступны. Например, они могут отображаться только с использованием оттенков серого.
Что это? справка по отключенным действиям по-прежнему доступна, при условии, что установлено свойство QAction::whatsThis.
Действие будет отключено, когда все виджеты, к которым оно добавлено (с помощью QWidget::addAction()), отключены или не видны. Когда действие отключено, его невозможно запустить с помощью сочетания клавиш.
По умолчанию это свойство равно true (действия включены).
Функции доступа:
| bool | isEnabled() const |
| void | setEnabled(bool) |
| void | resetEnabled() |
Сигнал уведомления:
| void | enabledChanged(bool enabled) |
См. также text.
font : QFont
Это свойство хранит шрифт действия.
Свойство шрифта используется для отображения текста, установленного в QAction. Шрифт можно рассматривать как подсказку, поскольку он не будет учитываться во всех случаях в зависимости от приложения и стиля.
По умолчанию это свойство содержит шрифт по умолчанию приложения.
Функции доступа:
| QFont | font() const |
| void | setFont(const QFont &font) |
Сигнал уведомления:
| void | changed() |
См. также setText().
icon : QIcon
Это свойство хранит значок действия.
На панелях инструментов значок используется в качестве значка кнопки инструмента; в меню он отображается слева от текста меню. Значка по умолчанию нет.
Если в эту функцию передается нулевой значок (QIcon::isNull()), значок действия очищается.
Функции доступа:
| QIcon | icon() const |
| void | setIcon(const QIcon &icon) |
Сигнал уведомления:
| void | changed() |
iconText : QString
Это свойство хранит описательный текст значка действия.
Если QToolBar::toolButtonStyle установлено в значение, которое позволяет отображать текст, текст, определенный в этом свойстве, отображается в виде метки на соответствующей кнопке инструмента.
Он также служит текстом по умолчанию в меню и подсказках, если действие не было определено с помощью setText() или setToolTip(), и также будет использоваться в кнопках панели инструментов, если значок не был определен с помощью setIcon().
Если текст значка не задан явно, для текста значка будет использоваться обычный текст действия.
По умолчанию это свойство содержит пустую строку.
Функции доступа:
| QString | iconText() const |
| void | setIconText(const QString &text) |
Сигнал уведомления:
| void | changed() |
См. также setToolTip() и setStatusTip().
iconVisibleInMenu : bool
Это свойство определяет, следует ли показывать значок действия в меню.
В некоторых приложениях может быть целесообразно иметь действия со значками на панели инструментов, но не в меню. Если значение true, значок (если он действителен) отображается в меню, если false, он не отображается.
По умолчанию используется значение, установленное атрибутом Qt::AA_DontShowIconsInMenus для приложения. Явное задание этого свойства переопределяет наличие (или отсутствие) атрибута.
Например:
QApplication app(argc, argv); app.setAttribute(Qt::AA_DontShowIconsInMenus); // Icons are *no longer shown* in menus // ... QAction *myAction = new QAction(); // ... myAction->setIcon(SomeIcon); myAction->setIconVisibleInMenu(true); // Icon *will* be shown in menus for *this* action.
Функции доступа:
| bool | isIconVisibleInMenu() const |
| void | setIconVisibleInMenu(bool visible) |
Сигнал уведомления:
| void | changed() |
См. также icon и QCoreApplication::setAttribute().
menuRole : MenuRole
Это свойство хранит роль действия в меню.
Это указывает на то, какую роль выполняет действие в меню приложения на macOS. По умолчанию все действия имеют TextHeuristicRole, что означает, что действие добавляется на основе его текста (см. QMenuBar для получения дополнительной информации).
Роль меню можно изменить только до того, как действия будут помещены в строку меню в macOS (обычно непосредственно перед отображением первого окна приложения).
Функции доступа:
| QAction::MenuRole | menuRole() const |
| void | setMenuRole(QAction::MenuRole menuRole) |
Сигнал уведомления:
| void | changed() |
priority : Priority
Это свойство содержит приоритет действия в пользовательском интерфейсе.
Это свойство может быть установлено для указания приоритета действия в пользовательском интерфейсе.
Например, когда панели инструментов имеют режим Qt::ToolButtonTextBesideIcon, действия с LowPriority не будут отображать текстовые метки.
Функции доступа:
| QAction::Priority | priority() const |
| void | setPriority(QAction::Priority priority) |
shortcut : QKeySequence
Это свойство содержит основную комбинацию клавиш действия.
Допустимые коды клавиш для этого свойства можно найти в Qt::Key и Qt::Modifier. По умолчанию комбинация клавиш не задана.
Функции доступа:
| QKeySequence | shortcut() const |
| void | setShortcut(const QKeySequence &shortcut) |
Сигнал уведомления:
| void | changed() |
shortcutContext : Qt::ShortcutContext
Это свойство содержит контекст для комбинации клавиш действия.
Допустимые значения для этого свойства можно найти в Qt::ShortcutContext. Значение по умолчанию — Qt::WindowShortcut.
Функции доступа:
| Qt::ShortcutContext | shortcutContext() const |
| void | setShortcutContext(Qt::ShortcutContext context) |
Сигнал уведомления:
| void | changed() |
shortcutVisibleInContextMenu : bool
Это свойство указывает, должно ли действие отображать комбинацию клавиш в контекстном меню.
В некоторых приложениях имеет смысл отображать комбинации клавиш действий в контекстных меню. Если значение true, комбинация клавиш (если она задана) отображается, когда действие отображается через контекстное меню; в противном случае — нет.
По умолчанию используется значение атрибута Qt::AA_DontShowShortcutsInContextMenus приложения, в противном случае используется подсказка стиля виджета. Явное задание этого свойства переопределяет наличие (или отсутствие) атрибута.
Функции доступа:
| bool | isShortcutVisibleInContextMenu() const |
| void | setShortcutVisibleInContextMenu(bool show) |
Сигнал уведомления:
| void | changed() |
См. также shortcut и QCoreApplication::setAttribute().
statusTip : QString
Это свойство содержит подсказку состояния действия.
Подсказка состояния отображается на всех панелях состояния, предоставляемых виджетом верхнего уровня действия.
По умолчанию это свойство содержит пустую строку.
Функции доступа:
| QString | statusTip() const |
| void | setStatusTip(const QString &statusTip) |
Сигнал уведомления:
| void | changed() |
См. также setToolTip() и showStatusText().
text : QString
Это свойство содержит описательный текст действия.
Если действие добавлено в меню, элемент меню будет содержать значок (если он есть), текст и комбинацию клавиш (если она есть). Если текст не задан явно в конструкторе или с помощью setText(), в качестве текста будет использоваться текст описания действия. По умолчанию текст не задан.
Функции доступа:
| QString | text() const |
| void | setText(const QString &text) |
Сигнал уведомления:
| void | changed() |
См. также iconText.
toolTip : QString
Это свойство содержит всплывающую подсказку действия.
Этот текст используется для всплывающей подсказки. Если всплывающая подсказка не задана, используется текст действия.
По умолчанию это свойство содержит текст действия.
Функции доступа:
| QString | toolTip() const |
| void | setToolTip(const QString &tip) |
Сигнал уведомления:
| void | changed() |
См. также setStatusTip() и setShortcut().
visible : bool
Это свойство указывает, отображается ли действие (например, в меню и строках инструментов).
Если visible равно true, действие отображается (например, в меню и строках инструментов) и может быть выбрано пользователем; если visible равно false, действие не отображается и не может быть выбрано.
Действия, которые не отображаются, не выделяются серым цветом; они вообще не отображаются.
По умолчанию это свойство равно true (действия отображаются).
Функции доступа:
| bool | isVisible() const |
| void | setVisible(bool) |
Сигнал уведомления:
| void | visibleChanged() |
whatsThis : QString
Это свойство содержит текст справки "Что это?".
Текст "Что это?" используется для краткого описания действия. Текст может содержать форматированный текст. По умолчанию текст "Что это?" не задан.
Функции доступа:
| QString | whatsThis() const |
| void | setWhatsThis(const QString &what) |
Сигнал уведомления:
| void | changed() |
См. также QWhatsThis.
Документация по членам-функциям
QAction::QAction(const QIcon &icon, const QString &text, QObject *parent = nullptr)
Создаёт действие с icon, text и parent. Если parent — группа действий, действие будет автоматически добавлено в группу.
Действие использует упрощенную версию text (например, «&Вариант меню…» становится «Вариант меню») в качестве описательного текста для кнопок инструментов. Вы можете переопределить это, задав конкретное описание с помощью setText(). Тот же текст будет использоваться для всплывающих подсказок, если вы не укажете другой текст с помощью setToolTip().
QAction::QAction(const QString &text, QObject *parent = nullptr)
Создаёт действие с некоторым text и parent. Если parent является группой действий, действие будет автоматически добавлено в группу.
Действие использует упрощенную версию text (например, «&Вариант меню…» становится «Вариант меню») в качестве описательного текста для кнопок инструментов. Вы можете переопределить это, задав конкретное описание с помощью setText(). Тот же текст будет использоваться для всплывающих подсказок, если вы не укажете другой текст с помощью setToolTip().
QAction::QAction(QObject *parent = nullptr)
Создаёт действие с parent. Если parent является группой действий, действие будет автоматически добавлено в группу.
Примечание: Аргумент parent является необязательным начиная с Qt 5.7.
[signal] void QAction::changed()
Этот сигнал излучается, когда действие изменилось. Если вас интересуют только действия в данном виджете, вы можете следить за QWidget::actionEvent(), отправленным с QEvent::ActionChanged.
Примечание: Сигнал-уведомление для свойства autoRepeat. Сигнал-уведомление для свойства font. Сигнал-уведомление для свойства icon. Сигнал-уведомление для свойства iconText. Сигнал-уведомление для свойства iconVisibleInMenu. Сигнал-уведомление для свойства menuRole. Сигнал-уведомление для свойства shortcut. Сигнал-уведомление для свойства shortcutContext. Сигнал-уведомление для свойства shortcutVisibleInContextMenu. Сигнал-уведомление для свойства statusTip. Сигнал-уведомление для свойства text. Сигнал-уведомление для свойства toolTip. Сигнал-уведомление для свойства whatsThis.
См. также QWidget::actionEvent().
[slot] void QAction::hover()
Это удобный слот, который вызывает activate(Hover).
[signal] void QAction::hovered()
Этот сигнал излучается, когда действие выделяется пользователем; например, когда пользователь приостанавливает курсор над пунктом меню, кнопкой на панели инструментов или нажимает сочетание клавиш действия.
См. также activate().
[slot] void QAction::setDisabled(bool b)
Это удобная функция для свойства enabled, которая полезна для соединений сигналов-слотов. Если b равно true, действие отключено; в противном случае оно включено.
[slot] void QAction::toggle()
Это удобная функция для свойства checked. Подключитесь к ней, чтобы изменить состояние выбора на противоположное.
[signal] void QAction::toggled(bool checked)
Этот сигнал излучается всякий раз, когда изменяется состояние выбора действия isChecked(). Это может быть результатом взаимодействия пользователя или вызова setChecked(). Поскольку setChecked() изменяет QAction, он излучает changed() в дополнение к toggled().
checked равно true, если действие выбрано, или false, если действие не выбрано.
Примечание: Сигнал-уведомление для свойства checked.
См. также activate(), triggered() и checked.
[slot] void QAction::trigger()
Это удобный слот, который вызывает activate(Trigger).
[signal] void QAction::triggered(bool checked = false)
Этот сигнал излучается, когда действие активируется пользователем; например, когда пользователь нажимает пункт меню, кнопку на панели инструментов или сочетание клавиш действия или когда вызывается trigger(). Отметим, что он не излучается при вызове setChecked() или toggle().
Если действие можно выбирать, checked равно true, если действие выбрано, или false, если действие не выбрано.
См. также activate(), toggled() и checked.
[virtual] QAction::~QAction()
Уничтожает объект и освобождает выделенные ресурсы.
QActionGroup *QAction::actionGroup() const
Возвращает группу действий для этого действия. Если никакая группа действий не управляет этим действием, то nullptr будет возвращено.
См. также QActionGroup и setActionGroup().
void QAction::activate(QAction::ActionEvent event)
Отправляет соответствующие сигналы для ActionEvent event.
Виджеты на основе действий используют этот API, чтобы вызвать излучение сигналов QAction, а также излучение собственных.
[since 6.0] QList<QObject *> QAction::associatedObjects() const
Возвращает список объектов, к которым добавлено это действие.
Эта функция была добавлена в Qt 6.0.
См. также QWidget::addAction() и QGraphicsWidget::addAction().
QVariant QAction::data() const
Возвращает пользовательские данные, заданные в QAction::setData.
См. также setData().
[override virtual protected] bool QAction::event(QEvent *e)
Переопределяет: QObject::event(QEvent *e).
bool QAction::isSeparator() const
Возвращает true , если это действие является разделителем; в противном случае возвращает false.
См. также setSeparator().
void QAction::setActionGroup(QActionGroup *group)
Устанавливает эту группу действий для group. Действие будет автоматически добавлено в список действий группы.
Действия в группе будут взаимоисключающими.
См. также QActionGroup и actionGroup().
void QAction::setData(const QVariant &data)
Устанавливает внутренние данные действия на заданные data.
См. также data().
void QAction::setSeparator(bool b)
Если b равно true, то это действие будет рассматриваться как разделитель.
Способ представления разделителя зависит от виджета, в который он вставлен. В большинстве случаев текст, подменю и значок будут игнорироваться для действий-разделителей.
См. также isSeparator().
void QAction::setShortcut(const QKeySequence &shortcut)
Устанавливает shortcut как единственное сочетание клавиш, которое активирует действие.
Примечание: Функция-установщик для свойства shortcut.
См. также shortcut и setShortcuts().
void QAction::setShortcuts(const QList<QKeySequence> &shortcuts)
Устанавливает shortcuts в качестве списка сочетаний клавиш, которые активируют действие. Первый элемент списка является основным сочетанием клавиш.
См. также shortcuts(), shortcut и setShortcut().
void QAction::setShortcuts(QKeySequence::StandardKey key)
Устанавливает зависящий от платформы список сочетаний клавиш на основе key. Результат вызова этой функции зависит от текущей платформы. Обратите внимание, что это действие может назначить более одного сочетания клавиш. Если требуется только основное сочетание клавиш, используйте setShortcut вместо этого.
См. также QKeySequence::keyBindings().
QKeySequence QAction::shortcut() const
Возвращает основное сочетание клавиш.
Примечание: Функция-получатель для свойства shortcut.
См. также setShortcuts().
QList<QKeySequence> QAction::shortcuts() const
Возвращает список сокращений, где основное сокращение является первым элементом списка.
См. также setShortcuts().
bool QAction::showStatusText(QObject *object = nullptr)
Обновляет соответствующую строку состояния для пользовательского интерфейса, представленного object, отправив событие QStatusTipEvent. Возвращает true, если событие было отправлено, в противном случае возвращает false.
Если указан нулевой виджет, событие отправляется родительскому элементу действия.
См. также statusTip.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qaction.html