我正在尝试制作一个基于 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 声明中实例化模型和委托,因为解释器会抱怨创建特定于状态的对象。