Pyqt - 从模型获取CSV

1 投票
2 回答
1988 浏览
提问于 2025-04-16 09:50

我有一个基于代理模型的树形视图,这个代理模型是基于一个数据模型的。

这样我就得到了一个可以过滤和排序的表格。

我只想把这个表格当前看到的内容导出到一个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接口,这样的代码可以适用于所有模型,无论是代理模型还是其他模型。

撰写回答