Python - PyQt - QTable小部件 - 添加行

时间:2012-01-08 04:44:54

标签: python pyqt qtablewidget

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

  • 姓名姓名电话电邮

当空格实际上是标签“\ t”时,当我读取此文件时,我希望填充QTable小部件。

我的QTable小部件有4列名为NameSurnameTelephoneEmail现在它没有行,但是当我从文件中读取行并拆分每行时通过制表符我想添加一个新行,每行包含该行中的内容。

有人能指出我如何解决这个问题,因为我找不到QTable Widget提供的解决方案或方法,可以让你这样做。

1 个答案:

答案 0 :(得分:14)

如果要填充QTableWidget,则需要在插入数据example in documentation之前设置行数和列数(PySide文档优于PyQt)。并且您不能只将由制表符分隔的文本字符串插入表格,您需要自己准备,然后通过调用QTableWidgetItem填充QTableWidget.setItem的表格。它看起来像这样:

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个实例。

在此示例文件中手动解析,但考虑使用标准csv module执行此任务。