繁体   English   中英

QTableView外部拖放

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM