【问题标题】:Reordering Qt Listview via drag'n'drop通过拖放重新排序 Qt Listview
【发布时间】:2017-05-26 05:19:49
【问题描述】:

我已经尝试过http://agateau.com/2016/reordering-a-listview-via-dragndrop-3/ 中描述的方法在列表视图中实现拖放支持。 但是,当列表中的项目数量增加时,在拖动时滚动会出现问题。

要重现该问题,请从https://github.com/agateau/listviewdragitem/tree/3-placeholders 下载项目。将列表中的项目数量增加三倍,并尝试将一个项目(除了第一个)拖到列表的末尾。当列表滚动一段时间后,拖动的项目将消失。我没有注意到发出任何表明拖动已完成的信号。

由于某种原因,第一项可以正确移动。

您对可能导致这种行为的原因有什么建议吗?

【问题讨论】:

    标签: qt listview qml


    【解决方案1】:

    第一个Item没有消失的原因是,它是currentItem,它被保护不被删除。

    另一个Items 突然消失的原因是ListView 实例化并销毁了Items,因为它认为它们是可见的。这意味着:因为它们在原来的位置上是可见的。

    currentIndex设置为被拖动的Item的索引,防止其被破坏。

    您也可以使用DelegateModel 并将相关的Items 添加到持久组,以防止破坏。

    【讨论】:

      猜你喜欢
      • 2014-07-05
      • 1970-01-01
      • 1970-01-01
      • 2020-09-30
      • 1970-01-01
      • 2020-04-05
      • 1970-01-01
      • 2013-08-25
      • 2011-11-01
      相关资源
      最近更新 更多