[英]QTableView external drag and drop
Is there a way to drag rows out of a QTableView? 有没有一种方法可以将行拖出QTableView?
I know how to internally move columns within a QTableView
by configuring some properties on the view: 我知道如何通过在视图上配置一些属性来在
QTableView
内部移动列:
table_view_->horizontalHeader()->setSectionsMovable(true);
table_view_->horizontalHeader()->setDragEnabled(true);
table_view_->horizontalHeader()->setDragDropMode(QAbstractItemView::InternalMove);
Going through the documentation on QAbstractItemView::DragDropMode
, I intuitively expected my following attempt to allow external dragging of vertical header items: QAbstractItemView::DragDropMode
上的文档,我很直观地期望我的以下尝试允许外部拖动垂直标题项目:
table_view_->verticalHeader()->setSectionsMovable(true);
table_view_->verticalHeader()->setDragEnabled(true);
table_view_->verticalHeader()->setDragDropMode(QAbstractItemView::DragOnly);
Still, I am limited to only internal move. 不过,我仅限于内部行动。
Given this article I derived my own model from QSqlRelationalTableModel
and added the Qt::ItemIsDragEnabled
flag to the flags
function, for all vertical header indexes: 给定本文,我从
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;
}
This didn't change anything and given the debug prints, flags
wasn't even called for vertical header items. 这并没有改变任何东西,并且给出了调试打印信息,垂直标题项甚至都没有调用
flags
。
将acceptDrops(true)添加到QTableView是否有帮助?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.