This code reproduces the issue, you can start to drag and drop "Item1" and you will see a crash immediately once you move the mouse during drag and drop.
#include <QApplication>
#include <QDrag>
#include <QListWidget>
#include <QMainWindow>
{
public:
{}
protected:
void startDrag(Qt::DropActions supportedActions) override
{
drag->setMimeData(mimeData(selectedItems()));
drag->exec(supportedActions);
}
};
int main(int argc, char *argv[])
{
CustomListWidget customListWidget(&w);
customListWidget.
setMovement(QListView::Snap);
customListWidget.
setViewMode(QListView::IconMode);
customListWidget.
setResizeMode(QListView::Adjust);
customListWidget.setDefaultDropAction(Qt::MoveAction);
customListWidget.
setIconSize(QSize(64,
64));
customListWidget.setUniformItemSizes(true);
customListWidget.setSortingEnabled(true);
customListWidget.setWrapping(true);
customListWidget.addItem("Item1");
customListWidget.addItem("Item2");
w.show();
return a.exec();
}
#include <QApplication>
#include <QDrag>
#include <QListWidget>
#include <QMainWindow>
class CustomListWidget : public QListWidget
{
public:
CustomListWidget(QWidget* parent) : QListWidget(parent)
{}
protected:
void startDrag(Qt::DropActions supportedActions) override
{
QDrag* drag = new QDrag(this);
drag->setMimeData(mimeData(selectedItems()));
drag->exec(supportedActions);
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMainWindow w;
CustomListWidget customListWidget(&w);
customListWidget.setMovement(QListView::Snap);
customListWidget.setViewMode(QListView::IconMode);
customListWidget.setResizeMode(QListView::Adjust);
customListWidget.setSelectionMode(QAbstractItemView::ExtendedSelection);
customListWidget.setDragDropMode(QAbstractItemView::DragDrop);
customListWidget.setDefaultDropAction(Qt::MoveAction);
customListWidget.setIconSize(QSize(64, 64));
customListWidget.setUniformItemSizes(true);
customListWidget.setSortingEnabled(true);
customListWidget.setWrapping(true);
customListWidget.addItem("Item1");
customListWidget.addItem("Item2");
w.show();
return a.exec();
}
To copy to clipboard, switch view to plain text mode
Bookmarks