有没有办法将行拖出QTableView?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);
不过,我只限于内部行动。
鉴于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
WASN甚至不需要垂直标题项目。
我想知道为什么我会在这个问题上投票反对。如果有人认为这个问题很愚蠢,那么请指出我的愚蠢,以便我可以解决这个问题。 –