【问题标题】:How to retrieve data from a QTableView如何从 QTableView 中检索数据
【发布时间】:2018-02-13 07:47:43
【问题描述】:

我有一个有两列的 QTableView。第一个显示姓名,另一个显示他们各自的电子邮件地址。我试图从 QTableView 获取该信息并将其打印到命令行。我希望信息看起来像

anderson anderson1@gmail.com
wariner warinera@yahoo.com

当我运行下面的代码时,它会打印无。这是我的示例代码

identity = []

for row in range(self.table_model3.rowCount()):
    identity.append([])
    for column in range(self.table_model3.columnCount()):
        index = self.table_model3.index(row, column)
        info = identity[row].append(str(self.table_model3.data(index)))
        print(info)

【问题讨论】:

标签: pyqt5 qtableview


【解决方案1】:

您的代码正在打印None,因为您将信息设置为将数据附加到身份的返回值,即None。要以您想要的格式打印,请尝试:

for row in range(self.table_model3.rowCount()):
    identity.append([])
    for column in range(self.table_model3.columnCount()):
        index = self.table_model3.index(row, column)
        identity[row].append(str(self.table_model3.data(index))

for item in identity:
    print('%s %s' % (item[0], item[1]))

【讨论】:

  • @eyllanesc ...是吗?
  • 您可以使用索引访问模型的元素吗?你测试过吗?
  • 是的,我已经测试过这个答案,并且我自己也多次使用过这种确切的方法。就像我说的,这假设他在表视图模型中的数据结构是一个称为数据的嵌套列表。这显然是他正在做的事情。他在代码中提到了self.table_model3.data,所以我假设他的底层数据存储是一个名为 data 的嵌套列表。
  • 不必假设内部结构如何,例如如果模型是 QStandardItemModel,您的代码是否可以工作?
  • 它不适用于 QStandardItemModel,但就像我的回答所说,这是假设数据结构是在表模型内部使用的嵌套列表。很可能是 QAbstractTableModel,这是一种常见的方法。随着发布的示例代码的数量,必须做出假设。如果这不是他使用的模特风格,他不必接受答案。但这仍然是一个问题的答案。
猜你喜欢
  • 2020-11-27
  • 2014-04-29
  • 1970-01-01
  • 2019-02-21
  • 2019-09-08
  • 2020-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多