【问题标题】:Does the ListView redraw the underlaying model if the model changes?如果模型发生变化,ListView 是否会重绘底层模型?
【发布时间】:2016-03-03 21:43:16
【问题描述】:

问题基本上是标题,但更详细:

我已将QAbstractListModel 子类化,我们将其命名为myModel。 我在 C++ 代码中创建 myModel 的内容,然后将其输入到 QML 中的 ListView 中。 我的代码在 C++ 代码中修改了myModel,我可以在我的ListView 中立即看到修改,这很好。 我的问题是,ListView 是否会在底层模型更改(如添加项目)或仅绘制新项目时重绘其所有元素?

【问题讨论】:

    标签: qt listview qml qt5 qabstractlistmodel


    【解决方案1】:

    这取决于你的模型发出什么信号,如果你只是覆盖一些受保护的方法,其中一些可能并不明显。请参阅 QAbstractItemModel 类中的信号文档。

    【讨论】:

      【解决方案2】:

      ListView 委托下,我检查了Component.onCompletedComponent.onDestruction 调用了多少次。结果是,当插入一个新项目时,Component.onCompleted 只被调用一次,而当一个项目被删除时,Component.onDestruction 只被调用一次,这意味着ListView 在插入和删除项目!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-14
        • 1970-01-01
        • 2022-11-24
        • 2021-11-02
        • 2017-08-10
        • 1970-01-01
        • 2020-11-06
        • 2011-10-02
        相关资源
        最近更新 更多