Qt4 QMenu项目排序

时间:2009-07-17 19:16:51

标签: qt qt4

我正在使用QT4并动态地向QMenu添加条目。是否可以对QMenu中的条目进行排序而不删除它并创建一个新条目?

我原本以为有一个函数可以在特定位置插入,所以我可以对插入进行排序,但是我无法找到它。

2 个答案:

答案 0 :(得分:6)

一旦添加,我认为你不能重新排序。虽然您正在创建,但您可以使用QWidget::insertAction方法将其准确放置在您想要的位置。

void QWidget::insertAction ( QAction * before, QAction * action )

否则你可以使用QWidget::addActions。创建动作列表并在添加到QMenu之前对其进行排序。

void QWidget::addActions ( QList<QAction *> actions )

答案 1 :(得分:1)

在我的一个代码中,我将QActions保存到一个单独的List中,并根据需要生成菜单和子菜单。从理论上讲,我可以为这些物品添加“重量”并重新订购它们,但我还没有实现它。

项目页面位于:http://code.google.com/p/qtedit4/wiki/qmdilib

请注意QWidget(和QMenu)的操作存储为QList,可以使用QWidget::actions()“读取”。请记住,列表已复制,因此您可以修改操作,但不能修改列表本身。 (我希望我没有误会......)