我是 PyQt 的新手,但仍然有点困惑。我有一个这样的文本文件结构:
- 名字姓氏电话电子邮件
现在当我用我的方法读取这个文件时,空格实际上是制表符“\t”,我希望填充 QTable 小部件。
我的 QTable 小部件有 4 列,分别是 Name
、Surname
、Telephone
、Email
现在它没有行但是当我从文件中读取行并用制表符拆分每一行时,我希望添加一个新行,该行在每一列中包含该行中的任何内容。
有人能给我指出如何解决这个问题的方向吗,因为我找不到 QTable Widget 提供的解决方案或方法可以让你做到这一点。
最佳答案
当你想要填充QTableWidget
时,你需要在插入数据之前设置行数和列数example in documentation (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 module为了这个任务。
关于Python - PyQt - QTable Widget - 添加行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8775447/