我有一个QML类,其中有一个函数,QStringList作为参数。我可以从QML中访问C ++模型中的其他项目。
在我的QML中:
function recentFiles(recentFilesList)
{
//This writes "0" for some reason, although it should be "3"
console.log(recentFilesList.length)
//Causes error: "Unable to assign [undefined] to QString"
return recentFilesList[0]
}
...
Text {
text: recentFiles(rootObject.myModel.recentFiles)
}
在我的源文件中:
QStringList someModel::recentFiles() const
{
QStringList recentFiles;
recentFiles << "A" << "B" << "C";
return recentFiles;
}
在我的标题文件中:
Q_INVOKABLE QStringList recentFiles() const;
最终,我正在尝试让我的QStringList
处理一个QML ListView
对象,它将显示如下:
答案 0 :(得分:2)
我认为这不是myModel
上的方法调用,您在QML中为可调用方法包装器传递recentFiles
任何传递:
Text {
text: recentFiles(rootObject.myModel.recentFiles)
}
您想要调用recentFiles
方法:
Text {
// vv !
text: recentFiles(rootObject.myModel.recentFiles())
}
唉,如果您的字符串列表是可变的并且可以在显示UI时更改,那么您应该只使用QStringListModel
。