Форум сайта python.su
Вот виджет:
В качестве модели используется экземпляр QAbstractItemModel, который работает с БД
Есть какой-нибудь способ перемещать элементы дерева по вертикали?
Например, пользователь нажимает Ctrl+Up и folder2 распологается над folder1, а если нажмет Ctrl+Down - то folder2 будет находится под folder3.
Представляю как это сделать вручную. Но возможно предусмотрены какие-то методы в самой Qt для этого.
Офлайн
Не мешай данные с отображением. Главная модель, которая работает с БД, должна только давать данные. А порядок обрабатывай в QSortFilterProxyModel.
Хинт: Не забывай, что index, который будет возвращать твой view, будет индексом прокси, а не основной модели.
Офлайн
avalanche А тебя не устроит если твои итемы пользователь будет перемещать мышкой (драг-энд-дропом)? Такое в Qt уже есть, надо только опцию включить соответствующую: view.setDragDropMode(QtGui.QAbstractItemView.InternalMove)
В любом случае надо будет самому учитывать в модели (или в прокси модели, что лучше конечно) изменившийся порядок элементов.
Офлайн
Спасибо вам за советы. Получилось реализовать задуманное с применением QSortFilterProxyModel. DragDropMode тоже хорошо.
Офлайн