gpt4 book ai didi

c++ - qt QAbstractItemModel 拖放移动项目执行删除/插入

转载 作者:行者123 更新时间:2023-11-28 01:58:35 27 4
gpt4 key购买 nike

我创建了一个派生自 QAbrstractItemModel 的类,以显示在 QTreeView 下。我需要拖放操作才能使用鼠标重新排序项目。

但是,我注意到当我这样做时,通过删除索引然后在新位置下创建新索引来移动项目。但是我重新实现了 moveRows() 方法。

有什么问题吗?或者这是预期的行为?

最佳答案

问题是 moveRows(及其所有伴随函数)已在 Qt 5 中引入。对 QAbstractItemModel 子类的拖放支持来自 Qt 4,即使在 Qt 5 中,不幸的是它仍然包含插入 + 删除,因为我们不想在 Qt 4 项目移植到 Qt 5 时破坏它们。

因此,Qt 5 不使用任何moveRows(例如,参见 here)。

从长远来看,Qt 将需要找到一种在模型上使用移动操作的方法,必须作为一个可选功能(我们不能破坏代码!)。真正的问题是“谁来做这项巨大的工作”......

关于c++ - qt QAbstractItemModel 拖放移动项目执行删除/插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40347852/

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