Найти - Пользователи
Полная версия: PyQt | Поднять или опустить item в QTreeView
Начало » GUI » PyQt | Поднять или опустить item в QTreeView
1
avalanche
Вот виджет:


В качестве модели используется экземпляр QAbstractItemModel, который работает с БД

Есть какой-нибудь способ перемещать элементы дерева по вертикали?
Например, пользователь нажимает Ctrl+Up и folder2 распологается над folder1, а если нажмет Ctrl+Down - то folder2 будет находится под folder3.

Представляю как это сделать вручную. Но возможно предусмотрены какие-то методы в самой Qt для этого.
ZZZ
Не мешай данные с отображением. Главная модель, которая работает с БД, должна только давать данные. А порядок обрабатывай в QSortFilterProxyModel.
Хинт: Не забывай, что index, который будет возвращать твой view, будет индексом прокси, а не основной модели.
poltergeist
avalanche А тебя не устроит если твои итемы пользователь будет перемещать мышкой (драг-энд-дропом)? Такое в Qt уже есть, надо только опцию включить соответствующую: view.setDragDropMode(QtGui.QAbstractItemView.InternalMove)

В любом случае надо будет самому учитывать в модели (или в прокси модели, что лучше конечно) изменившийся порядок элементов.
avalanche
Спасибо вам за советы. Получилось реализовать задуманное с применением QSortFilterProxyModel. DragDropMode тоже хорошо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB