QAction理论总结
- 一、概述
- 二、使用
一、概述
在应用程序中,许多常用命令可以通过 菜单、工具栏按钮 和 键盘快捷键 调用。由于用户希望以相同的方式执行每个命令,而不管使用什么用户界面,因此将每个命令表示为一个Action操作是有效的。可以将Action添加到菜单和工具栏中,并自动使它们保持同步。(也即是一个Action可以复用到很多操作的界面里,在菜单和工具栏同样可以用一个Action)例如,在文字处理器中,如果用户按下粗体工具栏按钮,粗体菜单项将自动被选中。
QAction可以作为独立的对象创建,但也可以在构建菜单时创建;QMenu类包含用于创建适合作为菜单项使用的操作的便捷函数。
还有一个就是像下面,QAction可以设置 快捷键、设置 Checked 之类的。
二、使用
一个QAction可以包含一个图标、菜单文本、快捷方式、状态文本、“这是什么?”文本和一个工具提示。
其中大部分都可以在构造函数中设置。
它们也可以单独使用 setIcon()、setText()、setIconText()、setShortcut()、setStatusTip()、setWhatsThis()和setToolTip()来设置。对于菜单项,可以使用setFont()设置单个字体。
可以使用QWidget::addAction()或QGraphicwidget::addAction()将操作添加到部件中。注意,在使用widget之前,必须先给它添加一个操作;当快捷方式应该是全局的 (即Qt::ApplicationShortcut为Qt::ShortcutContext) 时 也是如此。
一旦创建了QAction,它应该被添加到相关的菜单和工具栏,然后连接到将要执行该操作的插槽。同时,一个 Action可以被用这好几个地方。这样操作更简便,也是软件的一个为了方便的冗余设计。
例如:
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);
Qt官方建议将QAction 设置为窗口的子窗口。在大多数情况下,actions是应用程序主窗口的子窗口。