• 4919阅读
  • 1回复

[讨论]求助大神,Qml实现可编辑可排序的TableView问题 [复制链接]

上一主题 下一主题
离线kkil001
 

只看楼主 倒序阅读 楼主  发表于: 2017-01-03
首先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

离线happyinsect

只看该作者 1楼 发表于: 2017-03-14
Index需要mapToSource()才可以的
快速回复
限100 字节
 
上一个 下一个