我正在使用QML列表视图,一次显示一个元素
ListView
{
model: cppobj.list
...
}
cppobj
是一个可以修改的C ++对象,即可以删除,附加等项目。如果附加了一个元素,ListView将返回第一个元素。更不用说ListView.onRemove
了。任何想法如何处理它?</ p>
由于
/ edit:C ++对象的append
函数如下所示:
void append (QString str) { m_list.append(str); emit listChanged(m_list); }
答案 0 :(得分:2)
您需要使用QAbstractListModel。请参阅文档here。
答案 1 :(得分:0)
如果您希望拥有一个可以在QML中直接使用的变体JSON数据的ListModel,可以查看 JsonListModel 。它可以将JSON数据同步到ListModel,因此您不会丢失列表的当前滚动位置。您还可以应用过渡动画,并具有完整的ListView / ListModel功能。
ListView
{
model: JsonListModel {
source: myJsonData
keyField: "id"
}
...
}
您可以找到有关如何使用JsonListModel here的详细指南: