我有一个QMenu对象,我已经添加了几个具有特定文本的QAction对象。一切都运行良好,除了我想在运行时更改这些QActions的文本。我查看了QMenu API并没有找到任何方法来获取它们。我还尝试了actions.at(x)和其他一些东西。什么是正确的方法?
答案 0 :(得分:1)
这实际上取决于您构建应用的方式。在某些情况下,您可能会将QAction
作为成员保存,您可以直接访问这些成员。或者您可能只是保存QMenu
并用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
位置查找操作。同样,它实际上取决于您将如何确定要更改的操作。