Pyqt - 从模型中获取 CSV

Posted

技术标签:

【中文标题】Pyqt - 从模型中获取 CSV【英文标题】:Pyqt - get CSV from model 【发布时间】:2011-01-12 14:11:08 【问题描述】:

我有基于模型的基于代理模型的树视图。 所以我得到了一个可以过滤和分类的表格。

我只想将此表的当前视图导出到 CSV 文件。 就我所见,导出到文件或打印。

我想我必须为此使用代理模型,对吧? 我找不到方法行或类似的东西。

我真的必须使用 data()、rowCount() 和 collumnCount() 方法吗?

谢谢

【问题讨论】:

【参考方案1】:

有一个用于 python 的 CSV 读取器/写入器,您可以在Frank Osterfeld 的解决方案中使用它。

更多示例请参见http://docs.python.org/library/csv.html#examples!

import csv
writer = csv.writer(open("some.csv", "wb"))
writer.writerows(someiterable)

【讨论】:

【参考方案2】:

我不知道任何用于 QAbstractItemModels 的 CSV 解析器或导出器,所以我认为您必须编写自己的导出代码,如下所示(pythonish 伪代码):

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 API,它适用于所有模型,无论是否代理。

【讨论】:

以上是关于Pyqt - 从模型中获取 CSV的主要内容,如果未能解决你的问题,请参考以下文章

使用pyqt5显示选定行中的一个单元格

PyQt:如何从 QThread 获取 UI 数据

无法从 PyQT5 文本字段中获取文本

从 ffmpeg 获取实时输出以在进度条中使用(PyQt4,stdout)

将图像从 MySQL 获取到 PyQt5 中的 tableWidget

从 Pyqt5 中的可检查组合框中获取已检查的文本