Pyqt - 从模型获取CSV
我有一个基于代理模型的树形视图,这个代理模型是基于一个数据模型的。
这样我就得到了一个可以过滤和排序的表格。
我只想把这个表格当前看到的内容导出到一个CSV文件里。
也就是说,我想把我看到的内容导出到文件或者打印出来。
我想我得用代理模型来实现这个,对吧?
我找不到类似行(row)的方法或者其他什么的。
难道我真的得用data()、rowCount()和columnCount()这些方法吗?
谢谢!
2 个回答
3
在Python中,有一个可以读取和写入CSV文件的工具,你可以在Frank Osterfeld的解决方案中找到它。
想要查看更多例子,可以去看看这个链接!
import csv
writer = csv.writer(open("some.csv", "wb"))
writer.writerows(someiterable)
3
我不知道有没有专门为QAbstractItemModels设计的CSV解析器或导出工具,所以我觉得你需要自己写导出代码,像这样(类似Python的伪代码):
for row in range(model.rowCount()):
for col in range(model.columnCount()):
value = model.index( row, col, QModelIndex() ).data( Qt.DisplayRole ).toString()
#write v, add separator...
#finish row...
只用通用的QAbstractItemModel接口,这样的代码可以适用于所有模型,无论是代理模型还是其他模型。