如何創(chuàng)建用于QML的通用對(duì)象模型?我想知道是否有任何宏或方法將Qt模型注冊(cè)為QObject的屬性。例如,我有AnimalModel (http:/doc.qt.io/qt-5/qtQuick-Modelviewsdata-cppmodel s.html#qabopactitemmodel).我知道我可以把它傳遞給QuickView的根上下文QuickView view;view.rootContext()->setContextProperty("myModel", &model);如果我通過QML宏注冊(cè)了QObject,我也可以傳遞這個(gè)對(duì)象來查看:view.rootContext()->setContextProperty("obj", pDataObject);但是,如果我想要QObject,它包含任何數(shù)據(jù)的模型,該怎么辦?例如: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)};到目前為止,我找到的每一個(gè)例子都顯示了如何通過QAbstractListModel到根上下文。但沒有人將其用作QObject屬性。(我知道有QQmlListProperty但QQmlListProperty不支持部分刷新??偸怯斜匾亟ㄋ蠶ML對(duì)象)
3 回答

RISEBY
TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
static QHash<int, QByteArray> roles = { { ObjectRole, "object" } };
- 3 回答
- 0 關(guān)注
- 508 瀏覽
添加回答
舉報(bào)
0/150
提交
取消