Spec-Zone.ru › Qt 5.9

Класс QAction

Класс QAction предоставляет абстрактное действие пользовательского интерфейса, которое можно вставить в виджеты. Подробнее...

Заголовок: #include <QAction>
qmake: QT += widgets
Наследуется от: QObject
Наследует:

QWidgetAction

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

Общедоступные типы

Перечисление ActionEvent { Trigger, Hover }
Перечисление MenuRole { NoRole, TextHeuristicRole, ApplicationSpecificRole, AboutQtRole, ..., 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
  • statusTip : QString
  • text : QString
  • toolTip : QString
  • visible : bool
  • whatsThis : QString
  • 1 свойство унаследовано от QObject

Общедоступные функции

QAction(QObject *parent = nullptr)
QAction(const QString &text, QObject *parent = nullptr)
QAction(const QIcon &icon, const QString &text, QObject *parent = nullptr)
~QAction()
QActionGroup * actionGroup() const
void activate(ActionEvent event)
QList<QGraphicsWidget *> associatedGraphicsWidgets() const
QList<QWidget *> associatedWidgets() 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 isVisible() const
QMenu * menu() const
MenuRole menuRole() const
QWidget * parentWidget() const
Priority priority() const
void setActionGroup(QActionGroup *group)
void setAutoRepeat(bool)
void setCheckable(bool)
void setData(const QVariant &userData)
void setFont(const QFont &font)
void setIcon(const QIcon &icon)
void setIconText(const QString &text)
void setIconVisibleInMenu(bool visible)
void setMenu(QMenu *menu)
void setMenuRole(MenuRole menuRole)
void setPriority(Priority priority)
void setSeparator(bool b)
void setShortcut(const QKeySequence &shortcut)
void setShortcutContext(Qt::ShortcutContext context)
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(QWidget *widget = Q_NULLPTR)
QString statusTip() const
QString text() const
QString toolTip() const
QString whatsThis() const
  • 32 public functions inherited from QObject

Public Slots

void hover()
void setChecked(bool)
void setDisabled(bool b)
void setEnabled(bool)
void setVisible(bool)
void toggle()
void trigger()
  • 1 public slot inherited from QObject

Сигналы

void changed()
void hovered()
void toggled(bool checked)
void triggered(bool checked = false)
  • 2 signals inherited from QObject

Переопределённые защищённые функции

virtual bool событие(QEvent *e)
  • 9 защищённых функций унаследовано от QObject

Дополнительные унаследованные члены

  • 11 статических публичных членов унаследовано от QObject
  • 9 защищённых функций унаследовано от QObject

Подробное описание

Класс QAction предоставляет абстрактное действие пользовательского интерфейса, которое можно вставить в виджеты.

Во многих приложениях многие распространённые команды могут быть вызваны через меню, кнопки на панели инструментов и сочетания клавиш. Поскольку пользователь ожидает, что каждая команда будет выполняться одинаково, независимо от используемого пользовательского интерфейса, полезно представлять каждую команду как действие.

Действия можно добавлять в меню и панели инструментов, и они автоматически будут синхронизироваться. Например, в текстовом редакторе, если пользователь нажимает кнопку «Жирный» на панели инструментов, элемент меню «Жирный» будет автоматически отмечен.

Действия можно создавать как независимые объекты, но их также можно создавать во время создания меню; класс QMenu содержит вспомогательные функции для создания действий, подходящих для использования в качестве элементов меню.

Действие QAction может содержать значок, текст меню, сочетание клавиш, текст состояния, текст «Что это?», и всплывающую подсказку. Большинство из них можно установить в конструкторе. Их также можно установить независимо с помощью setIcon(), setText(), setIconText(), setShortcut(), setStatusTip(), setWhatsThis(), и setToolTip(). Для элементов меню можно установить отдельный шрифт с помощью setFont().

Действия добавляются в виджеты с помощью QWidget::addAction() или QGraphicsWidget::addAction(). Обратите внимание, что действие должно быть добавлено в виджет перед его использованием; это также верно, когда сочетание клавиш должно быть глобальным (т.е. Qt::ApplicationShortcut в качестве Qt::ShortcutContext).

После создания 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);
fileMenu->addAction(openAct);

Рекомендуется создавать действия как дочерние элементы окна, в котором они используются. В большинстве случаев действия будут дочерними элементами главного окна приложения.

См. также QMenu, QToolBar и Пример приложения.

Документация по типам членов

перечисление 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 Действие должно иметь приоритет в пользовательском интерфейсе.

Это перечисление было введено или изменено в Qt 4.6.

См. также priority.

END_OF_DOCUMENT_MARKER

Документация по свойствам

autoRepeat : bool

Это свойство определяет, может ли действие автоматически повторяться.

Если значение true, действие будет автоматически повторяться при удержании комбинации клавиш, при условии, что автоматическое повторение клавиш включено в системе. Значение по умолчанию — true.

Это свойство было введено в Qt 4.2.

Функции доступа:

bool autoRepeat() const
void setAutoRepeat(bool)

Сигнал уведомления:

void changed()

checkable : bool

Это свойство определяет, является ли действие флажком.

Флажковый элемент действия имеет состояние «включено/выключено». Например, в текстовом процессоре кнопка «Полужирный» на панели инструментов может быть либо включена, либо выключена. Действие, не являющееся переключателем, является командным действием; командное действие просто выполняется, например, сохранение файла. По умолчанию это свойство имеет значение false.

В некоторых ситуациях состояние одного переключателя должно зависеть от состояния других. Например, переключатели «Выровнять по левому краю», «По центру» и «Выровнять по правому краю» являются взаимоисключающими. Для достижения взаимоисключающего переключения добавьте соответствующие переключатели в QActionGroup со свойством QActionGroup::exclusive, установленным в true.

Функции доступа:

bool isCheckable() const
void setCheckable(bool)

Сигнал уведомления:

void changed()

См. также QAction::setChecked().

checked : bool

Это свойство определяет, установлен ли флажок действия.

Только флажковые действия могут быть отмечены. По умолчанию это значение false (флажок не установлен).

Функции доступа:

bool isChecked() const
void setChecked(bool)

Сигнал уведомления:

void toggled(bool checked)

См. также checkable.

enabled : bool

Это свойство определяет, включено ли действие.

Отключенные действия не могут быть выбраны пользователем. Они не исчезают из меню или панелей инструментов, но отображаются таким образом, который указывает на их недоступность. Например, они могут отображаться только с использованием оттенков серого.

Что это? справка по отключенным действиям по-прежнему доступна, при условии, что установлено свойство QAction::whatsThis.

Действие будет отключено, когда все виджеты, к которым оно добавлено (с помощью QWidget::addAction()), отключены или невидимы. Когда действие отключено, его невозможно активировать с помощью сочетания клавиш.

По умолчанию это свойство имеет значение true (действия включены).

Функции доступа:

bool isEnabled() const
void setEnabled(bool)

Сигнал уведомления:

void changed()

См. также text.

font : QFont

Это свойство хранит шрифт действия.

Свойство шрифта используется для отображения текста, установленного в QAction. Шрифт можно рассматривать как подсказку, поскольку он не будет учитываться во всех случаях в зависимости от приложения и стиля.

По умолчанию это свойство содержит шрифт по умолчанию приложения.

Функции доступа:

QFont font() const
void setFont(const QFont &font)

Сигнал уведомления:

void changed()

См. также QAction::setText() и QStyle.

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.

Это свойство было введено в Qt 4.4.

Функции доступа:

bool isIconVisibleInMenu() const
void setIconVisibleInMenu(bool visible)

Сигнал уведомления:

void changed()

См. также QAction::icon и QCoreApplication::setAttribute().

menuRole : MenuRole

Это свойство хранит роль действия в меню.

Это указывает, какую роль выполняет действие в меню приложения на macOS. По умолчанию все действия имеют TextHeuristicRole, что означает, что действие добавляется на основе его текста (см. QMenuBar для получения дополнительной информации).

Роль меню можно изменить только до того, как действия будут помещены в строку меню в macOS (обычно непосредственно перед отображением первого окна приложения).

Это свойство было введено в Qt 4.2.

Функции доступа:

MenuRole menuRole() const
void setMenuRole(MenuRole menuRole)

Сигнал уведомления:

void changed()

priority : Priority

Это свойство содержит приоритет действия в пользовательском интерфейсе.

Это свойство может быть установлено для указания приоритета действия в пользовательском интерфейсе.

Например, когда панели инструментов имеют режим Qt::ToolButtonTextBesideIcon, действия с LowPriority не будут отображать текстовые метки.

Это свойство было введено в Qt 4.6.

Функции доступа:

Priority priority() const
void setPriority(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()

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 changed()

whatsThis : QString

Это свойство содержит текст справки "Что это?".

Текст "Что это?" используется для краткого описания действия. Текст может содержать форматированный текст. Текст "Что это?" по умолчанию отсутствует.

Функции доступа:

QString whatsThis() const
void setWhatsThis(const QString &what)

Сигнал уведомления:

void changed()

См. такжеQWhatsThis.

Документация по членам-функциям

QAction::QAction(QObject *parent = nullptr)

Создаёт действие с parent. Если parent является группой действий, действие будет автоматически добавлено в группу.

Примечание: Аргумент parent является необязательным с Qt 5.7.

QAction::QAction(const QString &text, QObject *parent = nullptr)

Создаёт действие с текстом text и parent. Если parent является группой действий, действие будет автоматически добавлено в группу.

Действие использует упрощённую версию text (например, "&Пункт меню..." становится "Пункт меню") в качестве описательного текста для кнопок инструментов. Вы можете переопределить это, задав определённое описание с помощью setText(). Тот же текст будет использоваться для всплывающих подсказок, если вы не укажете другой текст с помощью setToolTip().

QAction::QAction(const QIcon &icon, const QString &text, QObject *parent = nullptr)

Создаёт действие со значком icon, текстом text и parent. Если parent является группой действий, действие будет автоматически добавлено в группу.

Действие использует упрощённую версию text (например, "&Пункт меню..." становится "Пункт меню") в качестве описательного текста для кнопок инструментов. Вы можете переопределить это, задав определённое описание с помощью setText(). Тот же текст будет использоваться для всплывающих подсказок, если вы не укажете другой текст с помощью setToolTip().

QAction::~QAction()

Уничтожает объект и освобождает выделенные ресурсы.

QActionGroup *QAction::actionGroup() const

Возвращает группу действий для этого действия. Если никакая группа действий не управляет этим действием, возвращается 0.

См. также QActionGroup и QAction::setActionGroup().

void QAction::activate(ActionEvent event)

Отправляет соответствующие сигналы для ActionEvent event.

Виджеты, основанные на действиях, используют этот API, чтобы вызвать отправку сигналов QAction, а также отправку своих собственных.

QList<QGraphicsWidget *> QAction::associatedGraphicsWidgets() const

Возвращает список виджетов, к которым было добавлено это действие.

Эта функция была добавлена в Qt 4.5.

См. также QWidget::addAction() и associatedWidgets().

QList<QWidget *> QAction::associatedWidgets() const

Возвращает список виджетов, к которым было добавлено это действие.

Эта функция была добавлена в Qt 4.2.

См. также QWidget::addAction() и associatedGraphicsWidgets().

[signal] void QAction::changed()

Этот сигнал испускается, когда действие изменено. Если вас интересуют только действия в данном виджете, вы можете отслеживать QWidget::actionEvent(), отправленный с QEvent::ActionChanged.

Примечание: Сигнал уведомления для свойства autoRepeat. Сигнал уведомления для свойства checkable. Сигнал уведомления для свойства enabled. Сигнал уведомления для свойства font. Сигнал уведомления для свойства icon. Сигнал уведомления для свойства iconText. Сигнал уведомления для свойства iconVisibleInMenu. Сигнал уведомления для свойства menuRole. Сигнал уведомления для свойства shortcut. Сигнал уведомления для свойства shortcutContext. Сигнал уведомления для свойства statusTip. Сигнал уведомления для свойства text. Сигнал уведомления для свойства toolTip. Сигнал уведомления для свойства visible. Сигнал уведомления для свойства whatsThis.

См. также QWidget::actionEvent().

QVariant QAction::data() const

Возвращает пользовательские данные, заданные в QAction::setData.

См. также setData().

[virtual protected] bool QAction::event(QEvent *e)

Переопределено из QObject::event().

[slot] void QAction::hover()

Это вспомогательный слот, который вызывает activate(Hover).

[signal] void QAction::hovered()

Этот сигнал испускается, когда действие выделяется пользователем; например, когда пользователь останавливает курсор над пунктом меню, кнопкой панели инструментов или нажимает комбинацию клавиш-сокращений действия.

См. также QAction::activate().

bool QAction::isSeparator() const

Возвращает true если это действие — разделитель; в противном случае возвращает false.

См. также QAction::setSeparator().

QMenu *QAction::menu() const

Возвращает меню, содержащее это действие. Действия, содержащие меню, могут использоваться для создания пунктов меню с подменю или вставки в панели инструментов для создания кнопок с всплывающими меню.

См. также setMenu() и QMenu::addAction().

QWidget *QAction::parentWidget() const

Возвращает родительский виджет.

void QAction::setActionGroup(QActionGroup *group)

Устанавливает эту группу действий для group. Действие будет автоматически добавлено в список действий группы.

Действия в группе будут взаимно исключать друг друга.

См. также QActionGroup и QAction::actionGroup().

void QAction::setData(const QVariant &userData)

Устанавливает внутренние данные действия на заданные userData.

См. также data().

[slot] void QAction::setDisabled(bool b)

Это вспомогательная функция для свойства enabled, которая полезна для соединений сигналов--слотов. Если b равно true, действие отключается; в противном случае оно включается.

void QAction::setMenu(QMenu *menu)

Устанавливает меню, содержащее это действие, на указанное menu.

См. также menu().

void QAction::setSeparator(bool b)

Если b равно true, это действие будет рассматриваться как разделитель.

Как представляется разделитель, зависит от виджета, в который он вставляется. В большинстве случаев текст, подменю и значок будут игнорироваться для действий-разделителей.

См. также QAction::isSeparator().

void QAction::setShortcuts(const QList<QKeySequence> &shortcuts)

Устанавливает shortcuts в качестве списка сокращений, которые вызывают действие. Первый элемент списка — это основное сокращение.

Эта функция была добавлена в Qt 4.2.

См. также shortcuts() и shortcut.

void QAction::setShortcuts(QKeySequence::StandardKey key)

Устанавливает зависящий от платформы список сокращений на основе key. Результат вызова этой функции будет зависеть от текущей платформы. Обратите внимание, что это действие может назначить несколько сокращений. Если требуется только основное сокращение, используйте setShortcut вместо этого.

Эта функция была добавлена в Qt 4.2.

См. также QKeySequence::keyBindings().

QKeySequence QAction::shortcut() const

Возвращает основное сокращение.

Примечание: Функция-получатель для свойства shortcut.

См. также setShortcuts().

QList<QKeySequence> QAction::shortcuts() const

Возвращает список сокращений, где основное сокращение — первый элемент списка.

Эта функция была добавлена в Qt 4.2.

См. также setShortcuts().

bool QAction::showStatusText(QWidget *widget = Q_NULLPTR)

Обновляет соответствующую строку состояния для указанного widget, отправляя QStatusTipEvent родительскому виджету. Возвращает true если событие было отправлено; в противном случае возвращает false.

Если указан нулевой виджет, событие отправляется родителю действия.

См. также statusTip.

[slot] void QAction::toggle()

Это вспомогательная функция для свойства checked. Подключитесь к ней, чтобы изменить состояние проверки на противоположное.

[signal] void QAction::toggled(bool checked)

Этот сигнал испускается всякий раз, когда изменяется состояние проверки действия isChecked(). Это может быть результатом взаимодействия пользователя или вызова setChecked().

checked имеет значение true, если действие проверено, или false, если действие не проверено.

Примечание: Сигнал уведомления для свойства checked.

См. также QAction::activate(), QAction::triggered() и checked.

[slot] void QAction::trigger()

Это вспомогательный слот, который вызывает activate(Trigger).

[signal] void QAction::triggered(bool checked = false)

Этот сигнал испускается, когда действие активируется пользователем; например, когда пользователь щелкает по пункту меню, кнопке на панели инструментов или нажимает сочетание клавиш для действия, или когда был вызван trigger(). Отметим, что он не испускается, когда вызывается setChecked() или toggle().

Если действие может быть отмечено, checked имеет значение true, если действие отмечено, или false, если действие не отмечено.

См. также QAction::activate(), QAction::toggled(), и checked.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qaction.html

Spec-Zone.ru

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