QAction

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

 

 

 

 

 

 

 

 

 

 

############################

posted @ 2022-02-23 12:40  西北逍遥  阅读(551)  评论(0编辑  收藏  举报