更改 QMenu 内部的 QAction 中的文本

Change text in a QAction that's inside of a QMenu

本文关键字:文本 QAction 更改 内部 QMenu      更新时间:2023-10-16

我有一个qmenu对象,我添加了几个带有特定文本的QACTION对象。一切都很好,除了我想在运行时更改这些Qactions的文本。我看了QMENU API,找不到任何方法来获取它们。我还尝试了Action.at(X)和其他一些事情。正确的方法是什么?

这确实取决于您如何构造应用程序。在某些情况下,您可能会将QAction作为成员保存,您可以直接访问。或者,您可能只是保存QMenu并使用QAction'S填充它。无论哪种方式,一旦采取了动作,您就可以在上面调用setText(QString)

// init
menu = new QMenu(this);
...
menu->addAction("foo");
// later on
QAction *action = menu->actions().at(0); // access just the first QAction
action->setText("bar");

QMenu还允许您通过QPoint位置查找操作。同样,这确实取决于您将如何确定要更改的操作。