3

我有一个 QMenu 对象,我向其中添加了几个带有特定文本的 QAction 对象。一切都很好,除了我想在运行时更改那些 QActions 的文本。我查看了 QMenu API 并没有找到任何方法来获取它们。我还尝试了 actions.at(x) 和其他一些东西。这样做的正确方法是什么?

4

1 回答 1

1

这实际上取决于您如何构建您的应用程序。在某些情况下,您可能会将QAction's 保存为可以直接访问的成员。或者您可能只是保存并用'sQMenu填充它。QAction无论哪种方式,一旦您采取行动,您只需调用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。同样,这实际上取决于您将如何确定要更改的操作。

于 2012-12-21T05:45:21.947 回答