【发布时间】:2015-12-22 16:47:00
【问题描述】:
我正在我的模型中实现拖放行为,该模型派生自 QAbstractItemModel。我的 drop 事件代码 (C++) 如下所示:
beginInsertRows(destination_index, row, row);
destination->AcquireDroppedComponent(component);
endInsertRows();
对AcquireDroppedComponent 的调用可能由于多种原因而失败并拒绝删除,在这种情况下,将不会在destination_index 中存储的索引中插入新行。我的问题是,如果发生这种情况,调用 begin/endInsertRows 会导致问题吗?到目前为止,我在 Windows 7 上进行的有限测试没有显示出任何不良行为,但我希望做到彻底,而不是依赖于某个平台的特定行为。我可以事先检查 drop 是否成功,但如果可以的话,我想避免额外的代码。我的问题也适用于 beginRemoveRows、beginInsertColumns 等其他开始/结束函数。
【问题讨论】:
标签: qt