Хочу сделать перетаскивание элементов внутри виджета мышью, а при нажатой кнопке Ctrl - копирование.
не получается, вот что есть:
class CategoriesTreeWidget(QtGui.QTreeWidget): def __init__(self, parent, func): QtGui.QTreeWidget.__init__(self, parent) self.func_ = func self.setDragDropMode(QtGui.QAbstractItemView.InternalMove) self.setDropIndicatorShown(True) def dropEvent(self, event): if event.keyboardModifiers () == QtCore.Qt.ControlModifier: event.setDropAction(QtCore.Qt.CopyAction) else: event.setDropAction(QtCore.Qt.MoveAction) event.acceptProposedAction ()
Сначала пытался сделать через
def dragMoveEvent(self, event): if event.keyboardModifiers () == QtCore.Qt.ShiftModifier: self.setDragDropMode(QtGui.QAbstractItemView.DragDrop) else: self.setDragDropMode(QtGui.QAbstractItemView.InternalMove) QtGui.QTreeWidget.dragMoveEvent(self, event)
Что я делаю не так? В чем соль и суть?