1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
class ListWidget(QListWidget):
def __init__(self, parent=None):
super(ListWidget, self).__init__(parent)
# ...
self.setDragDropMode(QtGui.QAbstractItemView.InternalMove)
self.setDefaultDropAction(QtCore.Qt.MoveAction)
self.setSelectionMode(QtGui.QAbstractItemView. ? )
self.setSelectionMode(QtGui.QAbstractItemView. ? )
def mouseMoveEvent(self, event):
self.startDrag(event)
def mousePressEvent(self, event):
# Utile si tu veux appliquer une sélection particulière des objets
QListWidget.mousePressEvent(self, event)
def startDrag(self, event):
if not self.selectedIndexes():
return
mimeData = QtCore.QMimeData()
mimeData.setText("files")
drag = QtGui.QDrag(self)
drag.setMimeData(mimeData)
# Eventuellement, tu places ici une icône de ton choix
result = drag.start(QtCore.Qt.MoveAction)
event.accept()
def dragMoveEvent(self, event):
if event.mimeData().hasText():
event.setDropAction(QtCore.Qt.MoveAction)
event.accept()
else:
event.ignore()
def dropEvent(self, event):
# Ici tu peux récupérer les infos mises dans mimeData, si utile
QListWidget.dropEvent(self, event) |
Partager