我是 Qt 的新手,并且编写了一个基本应用程序,它有一个继承自 QObject 并绑定到 QML 文件的类。
我现在希望该类包含一个对象向量(假设来自一个客户类),其中包含一些数据,例如用于名称的 QString 等。
为了让生活更轻松,我将在 main 中手动创建这些对象,并在我的 QML 文件中放置一些文本字段。
我现在希望能够将特定对象绑定到 QML 文件中的特定文本字段,这样当值更改时,文本字段中的值也会更新。
如何才能做到这一点?看起来 QML 静态调用它绑定到的类的方法,而不是在分配的对象上。
我觉得 QAbstractList 在这里可能有一些用处,但不太确定。宁愿不必为我的客户类继承任何东西。
编辑:
我想我可以使用基于 QObjectList 的模型(https://doc.qt.io/qt-5/qtquick-modelviewsdata-cppmodels.html)来做我想做的事。我注意到它在底部说“视图无法知道 QList 的内容已更改。如果 QList 更改,则有必要通过再次调用 QQmlContext::setContextProperty() 来重置模型。”
这是否意味着如果 DataObject 中的值(例如名称)发生更改,则必须重置模型,或者仅当 Qlist 本身发生更改时(即添加新项目或删除项目)?如果是后者,我认为这应该很容易维护,因为我只需要在添加或删除任何内容时设置上下文属性。