QAction
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);
建议将操作创建为其所在窗口的子窗口。在大多数情况下,操作将是应用程序主窗口的子窗口。
QAction(QObject *parent = nullptr) | |
QAction(const QString &text, QObject *parent = nullptr) | |
QAction(const QIcon &icon, const QString &text, QObject *parent = nullptr) | |
virtual | ~QAction() |
QActionGroup * | actionGroup() const |
void | activate(QAction::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 | isShortcutVisibleInContextMenu() const |
bool | isVisible() const |
QMenu * | menu() const |
QAction::MenuRole | menuRole() const |
QWidget * | parentWidget() const |
QAction::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(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(QWidget *widget = nullptr) |
QString | statusTip() const |
QString | text() const |
QString | toolTip() const |
QString | whatsThis() const |
############################