[英]QTableView external drag and drop
有没有一种方法可以将行拖出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
。
将acceptDrops(true)添加到QTableView是否有帮助?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.