有没有办法拖行了QTableView中的?
我知道如何在内部一个中移动列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);
不过,我仅限于内部移动。
鉴于这篇文章我来源于我自己的模型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
甚至不要求垂直头项目。