Spec-Zone.ru › Qt 6.0

Класс 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
Наследует классы:

QWidgetAction

  • Список всех членов, включая унаследованные
  • Устаревшие члены

Типы

Перечисление ActionEvent { Trigger, Hover }
Перечисление MenuRole { NoRole, TextHeuristicRole, ApplicationSpecificRole, AboutQtRole, AboutRole, …, QuitRole }
Перечисление Priority { LowPriority, NormalPriority, HighPriority }

Свойства

  • autoRepeat : bool
  • checkable : bool
  • checked : bool
  • enabled : bool
  • font : QFont
  • icon : QIcon
  • iconText : QString
  • iconVisibleInMenu : bool
  • menuRole : MenuRole
  • priority : Priority
  • shortcut : QKeySequence
  • shortcutContext : Qt::ShortcutContext
  • shortcutVisibleInContextMenu : bool
  • statusTip : QString
  • text : QString
  • toolTip : QString
  • visible : bool
  • whatsThis : QString

Открытые функции

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.0/qaction.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API