C++ 如何更改C++;来自QML的模型?

C++ 如何更改C++;来自QML的模型?,c++,qt,qml,C++,Qt,Qml,我在Qml中有一个列表视图,其中一个元素是文本输入。我用C++模型来膨胀列表视图。现在,如果用户在QML中输入文本中的任何值,我想改变C++模型。 我如何才能做到这一点?您必须在模型类中创建一个插槽并调用它: public slots: setDataInModel(const int index, const QVariant &value); 并从该元素的qml委托中调用它,当它已按如下方式编辑时: model.setDataInModel(index, text) 您还可以

我在Qml中有一个列表视图,其中一个元素是文本输入。我用C++模型来膨胀列表视图。现在,如果用户在QML中输入文本中的任何值,我想改变C++模型。
我如何才能做到这一点?

您必须在模型类中创建一个插槽并调用它:

public slots:
  setDataInModel(const int index, const QVariant &value);
并从该元素的qml委托中调用它,当它已按如下方式编辑时:

model.setDataInModel(index, text)

您还可以创建Q_可调用的方法,并以相同的方式从QML调用它们。

对于“model”,您的意思是
qabstractemmodel
?我问,因为在某些情况下,你可以做QML的C++模型。在我的例子中,我从QAcExcTimeModel中导出了模型类……我在QAbstractItemModel看到了一个方法SeTimTEDATA(const QModuleIndex和index,const qMAP&角色)。不是吗?不幸的是,这个方法不是从QML自动调用的,您必须编写slot或Q_可调用的方法并自己调用它们。