Изменение порядка элементов в QTreeWidget с помощью Drag and Drop в PyQt - PullRequest
2 голосов
/ 05 октября 2011

У меня есть QTreeWidget, который, как я думал, настроил все нужные настройки, чтобы можно было менять порядок элементов, перетаскивая их. Иногда он может работать, но чаще всего я перетаскиваю элемент в другой, и он либо исчезает, либо становится дочерним.

Есть ли способ предотвратить это, чтобы не потерять вещи, которые вы пытаетесь изменить? Я подумал, что вы можете достичь этого в Qt Designer. У меня для режима dragDrop установлено значение InternalMove, а для defaultDropAction установлено значение MoveAction, но я даже не уверен в том, что мне нужно настроить.

Заранее спасибо!

1 Ответ

2 голосов
/ 08 октября 2011

Вы можете добавить флаги к отдельным элементам виджета дерева, которые управляют поведением перетаскивания (среди прочего).Например, чтобы предотвратить попадание предмета в цель, попробуйте что-то вроде этого:

item = QTreeWidgetItem(parent)
item.setFlags(items.flags() & ~Qt.ItemIsDropEnabled)

Для получения более подробной информации смотрите документацию qt: http://doc.qt.nokia.com/4.7/qt.html#ItemFlag-enum

...