gpt4 book ai didi

Qt 拖放指示器位置

转载 作者:行者123 更新时间:2023-12-04 13:04:27 25 4
gpt4 key购买 nike

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

我的问题是,当我拖动时,我显示了拖动指示器,它显示了要放在项目上的矩形,或者要放在项目之间的线。但是,当我在我的数据模型中收到 dropMimeData 时,我看不到检索这些数据的方法。我注意到 QAbstractItemView 上有一个 dropIndicatorPosition,但它受到保护。所以我的问题是,我怎么能在 dropMimeData 中知道掉落是在元素上,在元素之前还是之后?

最佳答案

好的,我找到了答案:

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

如果 QModelIndex 有效(不是 parent.row(),parent.column() 为 -1),那么它会作为其父对象被放置在该对象上,由我决定将它放在模型中的哪个位置。

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

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

关于Qt 拖放指示器位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5510887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com