【问题标题】:Qt Drag and Drop indicator PositionQt 拖放指示器位置
【发布时间】:2011-04-01 08:33:32
【问题描述】:

我有一个从 QTreeView 扩展的类,它有一个从 QAbstractItemModel 扩展的数据模型,我想将一个项目拖到它上面。

我的问题是,当我拖动时,我显示了拖动指示器,它显示了要放置在项目上的矩形或要放置在项目之间的线。但是,当我在我的数据模型中收到 dropMimeData 时,我看不到检索此数据的方法。我注意到 QAbstractItemView 上有一个 dropIndicatorPosition,但它受到保护。所以我的问题是,我如何在 dropMimeData 中知道 drop 是在项目上、之前还是之后?

【问题讨论】:

    标签: qt


    【解决方案1】:

    好的,我找到了答案:

    bool MyModel::dropMimeData(const QMimeData *data, Qt::DropAction action,
                      int row, int column, const QModelIndex &parent)
    

    如果 QModelIndex 是有效的(不是 parent.row(),parent.column() of -1),那么它将作为其父对象被丢弃在该对象上,由我决定将其放在哪里型号。

    如果它无效,那么行和列不是-1,并且我有一个无效的模型索引,并且正在将对象插入该位置。

    这是在 qt 文档“Using Drag and Drop with Item Views”中 - 我只看过一般的拖放文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多