PyQt4 - QTableView - 如何循环 QTableView
Posted
技术标签:
【中文标题】PyQt4 - QTableView - 如何循环 QTableView【英文标题】:PyQt4 - QTableView - How to loop over QTableView 【发布时间】:2015-09-23 19:35:47 【问题描述】:我试图在 python 中找到一个示例,我可以在其中循环 QTableView 的模型元素并打印整行。 我已经找到了如何循环选择的行,但没有选择行时什么都没有。
有人可以帮助我吗?无需告诉我如何创建模型以及如何将其应用于 QTableModel。我只对如何迭代行感兴趣。
【问题讨论】:
【参考方案1】:我认为您在问题中的某些地方混淆了模型和视图...
但是,为什么不简单地获取行数和列数并遍历所有这些:
for irow in xrange(model.rowCount()):
row = []
for icol in xrange(model.columnCount()):
cell = model.data(model.createIndex(irow, icol))
row.append(cell)
# print all elems per row
print ', '.join(str(c) for c in row))
事情可能会被美化和/或以更紧凑的方式编写,但基本上就是这样。 还是我错过了什么?
【讨论】:
该算法只需少量更改即可工作。根据我的模型,我必须在以下行中包含显示角色:cell = model.getData(model.createIndex(irow, icol))。所以它必须是:cell = model.data(model.createIndex(irow, icol), QtCore.Qt.DisplayRole)。同样因为我的模型是为表和树创建的,所以 rowCount 和 columnCount 方法包含父级作为参数。由于我的模型用于表格,因此我必须通过 None。谢谢!DisplayRole
和无效的parent
通常是data
和rowCount
/columnCount
的默认参数:doc.qt.io/qt-4.8/qabstractitemmodel.html#data 这就是我省略这些的原因...以上是关于PyQt4 - QTableView - 如何循环 QTableView的主要内容,如果未能解决你的问题,请参考以下文章
如何将 QLineEdit 放入 QTableView 单元格 PyQt4?