Qt Przeciągnij i upuść QListView usuwając element, na którym został zwolniony
Pracuję na małym QlistView, który można sortować.
iListView = new QListView(this);
//Creating a standard item model
iStandardModel = new QStandardItemModel(this);
//First item
QStandardItem* item1 = new QStandardItem(QIcon(":/cover-story-album-art.jpg"),"First Item");
//Second item
QStandardItem* item2 = new QStandardItem(QIcon(":/cover-story-album-art.jpg"),"Second item");
//third item
QStandardItem* item3 = new QStandardItem(QIcon(":/cover-story-album-art.jpg"),"Third![enter image description here][1] item");
//Appending the items into model
iStandardModel->appendRow(item1);
iStandardModel->appendRow(item2);
iStandardModel->appendRow(item3);
//Setting the icon size
iListView->setIconSize(QSize(40,30));
//Setting the model
iListView->setModel(iStandardModel);
//Setting listview geometry
iListView->setGeometry(QRect(0,0,240,320));
iListView->setDragEnabled(true);
iListView->setAcceptDrops(true);
iListView->setDragDropMode(QAbstractItemView::InternalMove);
Cóż, przeciąganie i upuszczanie działa, ale pojawia się emisja, jeśli upuszczę przedmiot na inny wymieniony przedmiot inny niż koniec listy. Element „przeciągnięty” zastępuje element „zwolniony na”.
Zrzut ekranu QListView na różnych scenariuszach