2009-07-17 4 views
5

QT4를 사용 중이고 QMenu에 항목을 동적으로 추가하고 있습니다. QMenu의 항목을 삭제하거나 새 항목을 만들지 않고 정렬 할 수 있습니까?Qt4 QMenu items sorting

원래는 특정 위치에 삽입하는 기능이있어서 삽입시 정렬 할 수 있다고 생각했지만 위치를 찾을 수 없었습니다.

답변

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가) QWidget::actions()을 사용하여, 수 "읽기"할 수있는 QList로 저장됩니다의 행동. 목록은 복사되므로 목록 자체는 제외하고 작업을 수정할 수 있습니다. (나는 실수하지 않기를 바란다 ...)