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

questionAnswers(1)

yourAnswerToTheQuestion