如何创建用于QML的通用对象模型?我想知道是否有任何宏或方法将Qt模型注册为QObject的属性。例如,我有AnimalModel (http:/doc.qt.io/qt-5/qtQuick-Modelviewsdata-cppmodel s.html#qabopactitemmodel).我知道我可以把它传递给QuickView的根上下文QuickView view;view.rootContext()->setContextProperty("myModel", &model);如果我通过QML宏注册了QObject,我也可以传递这个对象来查看:view.rootContext()->setContextProperty("obj", pDataObject);但是,如果我想要QObject,它包含任何数据的模型,该怎么办?例如:class DataObject : public QObject{
Q_OBJECT
Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
Q_PROPERTY(QString color READ color WRITE setColor NOTIFY colorChanged)
...
AnimalModel m_modelAnimals;
//Is this possible in any way?
//Q_PROPERTY(AnimalModel modelAnimals READ modelAnimals NOTIFY modelAnimalsChanged)};到目前为止,我找到的每一个例子都显示了如何通过QAbstractListModel到根上下文。但没有人将其用作QObject属性。(我知道有QQmlListProperty但QQmlListProperty不支持部分刷新。总是有必要重建所有QML对象)
3 回答
幕布斯7119047
TA贡献1794条经验 获得超8个赞
static QHash<int, QByteArray> roles = { { ObjectRole, "object" } };
- 3 回答
- 0 关注
- 353 浏览
添加回答
举报
0/150
提交
取消