Pyqt - 从模型获取 CSV

发布于 2024-10-11 19:02:43 字数 197 浏览 1 评论 0原文

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

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

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

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

谢谢

I have treeview based on proxymodel based on model.
So I get a table, that can be filtered and sortered.

I just want to export current view of this table to CSV file.
Just what I see, export to a file or print.

I suppose I have to use proxymodel for that, right?
I cant find a method row or something like that.

Really I have to use methods data(), rowCount() and collumnCount()?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

北音执念 2024-10-18 19:02:44

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

I'm not aware of any CSV parser or exporter for QAbstractItemModels, so I think you have to write your own exporting code, like this (pythonish pseudo-code):

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...

Using only generic QAbstractItemModel API it works for all models, proxy or not.

卸妝后依然美 2024-10-18 19:02:44

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

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

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

There is a CSV reader/writer for python, which you can use in Frank Osterfeld's solution.

See http://docs.python.org/library/csv.html#examples for more examples!

import csv
writer = csv.writer(open("some.csv", "wb"))
writer.writerows(someiterable)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文