Today I tested drag and drop feature with PyQt5.
Python 3.7.4 (default, Jul 9 2019, 16:32:37)
[GCC 9.1.1 20190503 (Red Hat 9.1.1-1)] on linux
This is a simple example using
setAcceptDrops and
setDragEnabled:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QListWidget, QHBoxLayout,QListWidgetItem
from PyQt5.QtGui import QIcon
class Window(QWidget):
def __init__(self):
super().__init__()
self.myListWidget1 = QListWidget()
self.myListWidget2 = QListWidget()
self.myListWidget2.setViewMode(QListWidget.IconMode)
self.myListWidget1.setAcceptDrops(True)
self.myListWidget1.setDragEnabled(True)
self.myListWidget2.setAcceptDrops(True)
self.myListWidget2.setDragEnabled(True)
self.setGeometry(480, 400, 640, 480)
self.myLayout = QHBoxLayout()
self.myLayout.addWidget(self.myListWidget1)
self.myLayout.addWidget(self.myListWidget2)
l1 = QListWidgetItem(QIcon('house.png'), "House")
l2 = QListWidgetItem(QIcon('cloud.png'), "Clouds ")
l3 = QListWidgetItem(QIcon('user.png'), "User")
l4 = QListWidgetItem(QIcon('save.png'), "Save")
self.myListWidget1.insertItem(1, l1)
self.myListWidget1.insertItem(2, l2)
self.myListWidget1.insertItem(3, l3)
self.myListWidget1.insertItem(4, l4)
QListWidgetItem(QIcon('house.png'), "House", self.
myListWidget2)
QListWidgetItem(QIcon('cloud.png'), "Clouds", self.
myListWidget2)
QListWidgetItem(QIcon('save.png'), "Save", self.
myListWidget2)
self.setWindowTitle('Example: Drag and Drop');
self.setLayout(self.myLayout)
self.show()
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec())
The result is a windows with two QListWidget with an drag and drop feature.