import sys
from PySide2.QtWidgets import QApplication, QMainWindow, QListWidget, QListWidgetItem, QAbstractItemView
from PySide2.QtCore import QMimeData, QByteArray, qVersion

class ClassesListWidget(QListWidget):
    def __init__(self):
        super(ClassesListWidget, self).__init__()

        self.addItem(QListWidgetItem('first'))
        self.addItem(QListWidgetItem('second'))

        self.setSelectionMode(QAbstractItemView.SingleSelection)
        self.setDragEnabled(True)
        self.viewport().setAcceptDrops(True)
        self.setDropIndicatorShown(True)


    def mimeTypes(self):
        return ['text/plain']

    def mimeData(self, items):
        mime_data = QMimeData()
        data = QByteArray(bytes('testdata', 'utf-8'))
        mime_data.setData('text/plain', data)
        return mime_data


class MainWindow(QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setCentralWidget(ClassesListWidget())


if __name__ == '__main__':
    app = QApplication(sys.argv)

    v = qVersion()
    print(v)
    mw = MainWindow()
    mw.setWindowTitle(v)
    mw.show()

    sys.exit(app.exec_())
