2009-07-17 16 views
5

Tôi đang sử dụng QT4 và tự động thêm các mục vào QMenu. Có thể sắp xếp các mục nhập trong QMenu mà không xóa nó và tạo một mục mới không?Qt4 Các mục QMenu sắp xếp

Tôi ban đầu nghĩ rằng có một chức năng để chèn tại một vị trí cụ thể để tôi có thể sắp xếp trên chèn, nhưng tôi đã không thể xác định vị trí nó.

Trả lời

6

Sau khi thêm, tôi không nghĩ bạn có thể sắp xếp lại. Mặc dù bạn đang tạo mặc dù bạn có thể sử dụng phương thức QWidget::insertAction để đặt chính xác nơi bạn muốn.

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

Nếu không, bạn có thể sử dụng QWidget::addActions. Tạo danh sách Tác vụ của bạn và sắp xếp nó trước khi thêm vào QMenu.

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

Trong một trong các mã của tôi, tôi lưu QActions vào Danh sách riêng và tạo menu và menu con theo yêu cầu. Về lý thuyết, tôi có thể thêm "trọng lượng" vào các mục và yêu cầu chúng được đặt hàng lại, nhưng tôi chưa thực hiện điều này.

trang Project

có sẵn ở đây: http://code.google.com/p/qtedit4/wiki/qmdilib

Xin lưu ý rằng các hành động của QWidget (và QMenu) được lưu trữ như một QList mà có thể "đọc", sử dụng QWidget::actions(). Hãy nhớ rằng danh sách được sao chép, vì vậy bạn có thể sửa đổi các hành động nhưng không thể tự sửa đổi danh sách. (Tôi hy vọng tôi không nhầm ...)