Python - PyQt - QTable Widget - adding rows



我是PyQt的新手,无论如何还是有点困惑。我有一个这样的文本文件结构:

  • 姓名电话电子邮件

当我用我希望填充QTable Widget的方法读取这个文件时,空格实际上是选项卡"\t"。

我的QTable Widget有4列,分别称为NameSurnameTelephoneEmail,现在它没有行,但当我从文件中读取行并用制表器拆分每一行时,我希望在每一列中添加一个新行,其中包含行中的内容。

有人能为我指明如何进行这项工作的方向吗?因为我找不到QTable Widget提供的解决方案或方法。

当您想要填充QTableWidget时,您需要在文档中插入数据示例之前设置行和列计数(PySide文档比PyQt更好)。而且,您不能只在表中插入由制表符分隔的文本字符串,您需要自己准备它,然后通过调用QTableWidget.setItemQTableWidgetItem填充表。它看起来是这样的:

entries = []
with open('data') as input:
    for line in input:
        entries.append(line.strip().split('t'))
tableWidget.setRowCount(len(entries))
tableWidget.setColumnCount(len(entries[0]))
for i, row in enumerate(entries):
    for j, col in enumerate(row):
        item = QTableWidgetItem(col)
        tableWidget.setItem(i, j, item)

我假设您有包含条目的data文件,而tableWidgetQTableWidget实例。

在这个例子中,文件是手工解析的,但考虑使用standart csv模块来完成这个任务。

最新更新