Spec-Zone.ru › Qt 5.6

Класс 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)
QAction(const QString &text, QObject *parent)
QAction(const QIcon &icon, const QString &text, QObject *parent)
~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
  • 31 общедоступные функции, унаследованные от QObject

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

void hover()
void setChecked(bool)
void setDisabled(bool b)
void setEnabled(bool)
void setVisible(bool)
void toggle()
void trigger()
  • 1 общедоступный слот, унаследованный от QObject

Сигналы

void changed()
void hovered()
void toggled(bool checked)
void triggered(bool checked = false)
  • 2 сигнала, унаследованные от QObject

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

виртуальный 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)

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

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

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

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

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

Создаёт действие с 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/archives/qt-5.6/qaction.html

Spec-Zone.ru

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