У меня есть класс QML, который имеет в нем функцию с QStringList в качестве параметра. Я могу получить доступ к другим элементам в модели C++ из QML.
В моем 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
где он будет отображаться следующим образом:
Я думаю, что это не вызов метода на myModel
, вы передаете recentFiles
все, что передается для invokable-метода в QML:
Text {
text: recentFiles(rootObject.myModel.recentFiles)
}
Вы хотите вызвать метод recentFiles
:
Text {
// vv !
text: recentFiles(rootObject.myModel.recentFiles())
}
Увы, если ваш список строк изменен и может измениться при отображении пользовательского интерфейса, вы должны просто использовать QStringListModel
.