#python #pyqt #drag-and-drop #qtreewidget
#python #pyqt #перетаскивание #qtreewidget
Вопрос:
У меня есть QTreeWidget с тем, что, как я думал, все правильные настройки настроены для того, чтобы иметь возможность изменять порядок элементов, перетаскивая их. Иногда это может сработать, но чаще всего я перетаскиваю элемент в другой, и он либо исчезает, либо становится дочерним.
Есть ли какой-нибудь способ предотвратить это, чтобы вы не потеряли товары, которые пытаетесь переупорядочить? Я подумал, что вы могли бы добиться этого в Qt Designer. У меня установлен режим перетаскивания в InternalMove, а для defaultDropAction установлено значение MoveAction, но я даже не уверен, что оба из них — это то, что мне нужно настроить.
Заранее спасибо!
Ответ №1:
Вы можете добавлять флаги к отдельным элементам виджета дерева, которые управляют поведением перетаскивания (среди прочего). Например, чтобы элемент не был целью удаления, попробуйте что-то вроде этого:
item = QTreeWidgetItem(parent)
item.setFlags(items.flags() amp; ~Qt.ItemIsDropEnabled)
Для получения более подробной информации см.: Qt.ItemFlags