2014-10-04 252 views
2

我使用即一次动态C++模型和QML的ListView

ListView 
{ 
     model: cppobj.list 
     ... 
} 

cppobj显示一个元件可被改性C++对象,即,可被移除项的QML列表视图,所附等等。如果附加一个元素,ListView将返回到第一个元素。什么是ListView.onRemove不叫。任何想法如何应对?

感谢

/编辑:C++对象的append功能看起来像这样:

void append (QString str) { m_list.append(str); emit listChanged(m_list); } 
+1

[检查此](http://stackoverflow.com/questions/22249521/is-it-possible-to-use-qabstracttablemodel-with-tableview-from-qtquick-controls/22265242#22265242) – Redanium 2014-10-07 22:36:02

回答

2

您需要使用QAbstractListModel。请参阅文档here

+0

并在那里用于QStrings的任何Model类(以便实现更少)?在我的情况下,'m_list'是QStringList? – marmistrz 2014-10-04 18:37:41

+1

您可以通过一个属性公开'QStringList',但是'QAbstractListModel'是以每个项目为基础进行视图更新的唯一方法。 – 2014-10-04 19:43:21

+0

和'QStringListModel'类?它继承'QAbstractListModel'。 – marmistrz 2014-10-04 19:59:40