更改QMenu内部的QAction中的文本

时间:2012-12-21 05:15:36

标签: c++ qt

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

1 个答案:

答案 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位置查找操作。同样,它实际上取决于您将如何确定要更改的操作。