Python - PyQt - QTable Widget - 添加行
我刚开始学习PyQt,还有点困惑。我的文本文件结构是这样的:
- 姓名 姓氏 电话 邮箱
这里的空格其实是制表符 " \t "。现在我用我的方法读取这个文件时,想把内容填充到QTable Widget里。
我的QTable Widget有4列,分别叫做 姓名
、姓氏
、电话
、邮箱
,现在没有任何行。但是当我从文件中读取每一行,并用制表符分割每一行时,我希望能添加一行,每一列都包含这一行中的内容。
有人能告诉我该怎么做吗?因为我找不到QTable Widget提供的解决方案或方法来实现这个功能。
1 个回答
15
当你想要填充 QTableWidget
时,首先需要设置行数和列数,然后才能插入数据。你可以在这个文档示例中找到相关信息(PySide 的文档比 PyQt 的更好)。而且,你不能直接把用制表符分隔的文本字符串插入到表格中,你需要自己准备这些数据,然后通过调用 QTableWidget.setItem
来用 QTableWidgetItem
填充表格。代码大概是这样的:
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
文件,而 tableWidget
是一个 QTableWidget
的实例。
在这个例子中,文件是手动解析的,但建议使用标准的 csv 模块 来完成这个任务。