查看完整版本: [-- 求助大神,Qml实现可编辑可排序的TableView问题 --]

QTCN开发网 -> Qt QML开发 -> 求助大神,Qml实现可编辑可排序的TableView问题 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

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


happyinsect 2017-03-14 22:58
Index需要mapToSource()才可以的


查看完整版本: [-- 求助大神,Qml实现可编辑可排序的TableView问题 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled