[Qt-qml] QAbstractItemModel and setData / setProperty
vineeth
nvineeth at gmail.com
Tue May 24 16:15:49 CEST 2011
Thanks a lot for pointing this out. I could directly declare a q_invokable
method in the model data and get this working.
--vineeth
On Tue, May 24, 2011 at 5:57 PM, Stephen Kelly <steveire at gmail.com> wrote:
> vineeth wrote:
>
> > Hello,
> > I am using a C++ QAbstractItemModel as a model for a ListView and have
> > implemented the setData
> > <http://doc.trolltech.com/4.7.1/qabstractitemmodel.html#setData>and
> > items<http://doc.trolltech.com/4.7.1/qabstractitemmodel.html#flags>as
> > indicated in the documentation to make the items editable.
> > However, if I call, model.setProperty( ... ) from the delegate I get
> > TypeError:
> > Result of expression 'model.setProperty' [undefined] is not a function.
> > I get the same error, even for model.setData(...) call.
> > calling model.<rolename> = <new role value> from delegate throws
> > read-only error.
>
> setProperty comes from QObject. It doesn't have anything to do with the
> model API. setData is what you want if using C++.
>
> For QML, QAbstractItemModel::setData is not supported.
>
> >
> > What is the right procedure to set a role value of a abstract item
> model
> > from a QML delegate?
>
> Currently you have to do something yourself. You don't want to couple your
> view to the model, so consider creating an additional QObject for QML with
> an API like
>
> class ModelDataSetter : public QObject
> {
> ...
> Q_INVOKABLE void setModelData(QAbstractItemModel *model,
> int row,
> int role,
> QVariant &data)
> {
> model->setData(model->index(row, 0), role, data);
> }
> }
>
> Which you then use in QML:
>
> onClicked : _modelDataSetter.setModelData(ListView.view.model, model.index,
> someRole, someElement.text);
>
> or something similar.
>
> >
> > Has anybody experienced this error and pls let me know your inputs in
> > solving it.
> > ( I have reproduced this error in the AnimalModel
> > example<http://doc.trolltech.com/4.7.1/declarative-modelviews-
> abstractitemmodel.html>,
> > and attached the Qt Pro.)
> > Kindly share your insights.
> >
> > Thanks.
> > --vineeth
>
>
> _______________________________________________
> Qt-qml mailing list
> Qt-qml at qt.nokia.com
> http://lists.qt.nokia.com/mailman/listinfo/qt-qml
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt.nokia.com/pipermail/qt-qml/attachments/20110524/f5b5a970/attachment-0001.html
More information about the Qt-qml
mailing list