Я пытаюсь создать приложение для словаря на основе QML. Он выбирает определение слова через XML RESTful API и отображает их в ListView. У меня это работает в этом элементарном режиме. Но теперь я пытаюсь реализовать два состояния для ListView: стандартное представление с определениями и список предложений типа «вы имели в виду» для случая, когда поиск не удался.
Мой текущий код для ListView выглядит так:
ListView
{
SuggestionModel{id:suggestionModel; currentWord : "test"}
SuggestionDelegate{id:suggestionDelegate}
model : XmlModel{id: standardModel; currentWord : "test"}
delegate : ListDelegate{id:standardDelegate}
clip : true
anchors.top : hbox.bottom
y : hbox.height + 3
width : parent.width
height : parent.height - hbox.height
id : list
states :
State { name: "suggestion"; when: list.model == suggestionModel ||
list.model.status == XmlListModel.Ready && list.count == 0
PropertyChanges {
target: list
model : suggestionModel
delegate : suggestionDelegate
}
}
focus : true
keyNavigationWraps : true
}
, который дает эту ошибку:
Unable to assign QObject* to QDeclarativeComponent*
для объявления PropertyChanges
. Есть также обязательный цикл, но это не та проблема, которую я не смог исправить. Моя проблема в том, как мне определить состояния. Я не могу создать экземпляр модели и делегировать внутри объявления State, так как интерпретатор будет жаловаться на создание объекта для конкретного состояния.