有没有办法将行拖出 QTableView?
我知道如何通过在 View 上配置一些属性来在 QTableView
内部移动列:
table_view_->horizontalHeader()->setSectionsMovable(true);
table_view_->horizontalHeader()->setDragEnabled(true);
table_view_->horizontalHeader()->setDragDropMode(QAbstractItemView::InternalMove);
浏览关于 QAbstractItemView::DragDropMode
的文档,我直觉地期望我的以下尝试允许垂直标题项的外部拖动:
table_view_->verticalHeader()->setSectionsMovable(true);
table_view_->verticalHeader()->setDragEnabled(true);
table_view_->verticalHeader()->setDragDropMode(QAbstractItemView::DragOnly);
不过,我仅限于内部移动。
给定this article我从 QSqlRelationalTableModel
派生了我自己的模型,并将 Qt::ItemIsDragEnabled
标志添加到 flags
函数,用于所有垂直标题索引:
Qt::ItemFlags MyRelationalTableModel::flags(const QModelIndex &index) const
{
Qt::ItemFlags defaultFlags = QSqlRelationalTableModel::flags(index);
if(index.column() == -1 && index.row() > -1) {
qDebug() << "drag enabled.";
return Qt::ItemIsDragEnabled | defaultFlags;
} else {
qDebug() << "not drag enabled.";
}
return defaultFlags;
}
这并没有改变任何东西,并且给出了调试打印,甚至没有为垂直标题项调用 flags
。
最佳答案
将 acceptDrops(true) 添加到 QTableView 有帮助吗?
关于c++ - QTableView外部拖拽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32342897/