2009-07-17 75 views
5

我正在使用QT4並動態添加條目到QMenu。是否可以對QMenu中的條目進行排序而不刪除它並創建一個新條目?Qt4 QMenu項目排序

我原本以爲有一個函數在特定的位置插入,所以我可以在插入時排序,但我一直沒有找到它。

回答

6

一旦添加,我不認爲你可以重新排序。在創建時雖然可以使用QWidget::insertAction方法將其準確放置在您想要的位置。

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

否則,您可以使用QWidget::addActions。在添加到QMenu之前,創建您的動作列表並對其進行排序。

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

在我的代碼中的一個,我保存QActions到一個單獨的列表,併產生對需求的菜單和子菜單。從理論上講,我可以給物品添加「重量」並讓它們重新排序,但是我還沒有實現。

項目頁面,請訪問:http://code.google.com/p/qtedit4/wiki/qmdilib

請注意,QWidget(和QMenu)存儲爲QList它可以是「讀」,使用QWidget::actions()的行動。請記住,該列表已被複制,因此您可以修改操作,但不能修改列表本身。 (我希望我不會錯......)