kkil001 |
2017-01-03 17:47 |
求助大神,Qml实现可编辑可排序的TableView问题
首先Model一定要用从C++中导入的QAbstractItemModel,这个简单,在C++里写好继承自QAbstractItemModel的子类,然后在main里面注册一下就可以了 其次实现可编辑功能,不管你怎么弄,编辑数据一定要用QAbstractItemModel里的setData()函数吧,而setData()函数里一项必要的参数就是Index。好,先记着,必须要用Index,必须要用Index,必须要用Index,重要的事情说三遍。 再来,实现点击表头排序功能必须要用到代理模型QSortFilterPoxyModel吧,这个也简单,和Model一样在C++里写好注册一下在Qml里就能用。 最后在双击事件里写入QAbstractItemModel(非代理模型)的setData函数就行了,逻辑很通吧。
那么现在问题来了,使用了代理模型QSortFilterPoxyModel之后,在TableView里的Index会自动变成QSortFilterPoxyModel的Index,而这个Index根本没法在源模型QAbstractItemModel里使用,请问大神使用了代理模型之后如何在源模型里写入数据,或者如何实现一个可编辑可排序的TableView
|
|