我创建了QListView和QStringListModel。停止QListView从拖放删除条目
void MainWindow::addItem(QString result)
{
if (result == "")
return;
listModel->insertRow(listModel->rowCount());
QModelIndex a = listModel->index(listModel->rowCount()-1);
listModel->setData(a,result);
}
的问题是,当你在列表中拖动项目,并尝试将其移动到另一个位置时,它喜欢覆写的项目你:
listModel = new QStringListModel(ui->listView);
ui->listView->setModel(listModel);
ui->listView->setEditTriggers(QListView::NoEditTriggers);
ui->listView->setDragDropMode(QListView::InternalMove);
而且我使用添加项目将它拖到。我不希望通过拖放操作删除项目。
您不必对模型进行子类化。如果你使用QStandardItem模型,你可以创建QStandardItem,设置适当的标志并在setItemPrototype()'''中使用这个项目。 – Michal