def startDrag(self, supportedActions): index = self.currentIndex() if not index.isValid(): return item = self.model().itemFromIndex(index) path = getattr(item, '_path', None) if path is None: qWarning('MessageTreeWidget.startDrag(): no _path set on item %s' % item) return data = QMimeData() data.setText(item._path) drag = QDrag(self) drag.setMimeData(data) drag.exec_()