我想知道如何QTableView
通过拖动来改变行的顺序,并将顺序更改存储到模型中?
我使用 QTableView 作为视图,使用 QSqlTableModel 作为模型。我正在使用 Qt 5.15。
我设置:
ui->table_view->setSelectionMode(QAbstractItemView::SingleSelection);
ui->table_view->setSelectionBehavior(QAbstractItemView::SelectRows);
ui->table_view->setEditTriggers(QAbstractItemView::NoEditTriggers);
我试过的方法:
1.
ui->table_view->setSectionsMovable(true);
ui->table_view->setDragEnabled(true);
ui->table_view->setDragDropMode(QAbstractItemView::InternalMove);
ui->table_view->setAcceptDrops(true);
它没有生效。该行无法拖动。
2.
ui->table_view->verticalHeader()->setSectionsMovable(true);
ui->table_view->verticalHeader()->setDragEnabled(true);
ui->table_view->verticalHeader()->setDragDropMode(QAbstractItemView::InternalMove);
ui->table_view->verticalHeader()->setAcceptDrops(true);
该行可以通过垂直标题拖动。但是更改的顺序不会影响模型。