#ifndef MYLISTWIDGET_H #define MYLISTWIDGET_H #include #include #include class MyListWidget : public QListWidget { public: using QListWidget::QListWidget; protected: void startDrag(Qt::DropActions supportedActions) override { QListWidgetItem *item = currentItem(); if (!item) return; QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData; QString type = item->data(Qt::UserRole).toString(); mimeData->setData("application/x-component", type.toUtf8()); drag->setMimeData(mimeData); drag->setPixmap(item->icon().pixmap(iconSize())); drag->setHotSpot(drag->pixmap().rect().center()); drag->exec(Qt::CopyAction); } }; #endif // MYLISTWIDGET_H