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

  • 姓名姓氏电话电子邮件

  • 现在,当我阅读此文件时,空格实际上是制表符“\t”,我希望使用此方法填充QTable窗口小部件。

    我的QTable窗口小部件有4列称为NameSurnameTelephoneEmail,现在它没有行了,但是当我从文件中读取行并按制表符拆分每行时,我希望在每列中添加一个新行,其中包含该行中的所有内容。

    有人可以指出我该怎么做的方向,因为我找不到QTable Widget提供的解决方案或方法来实现此目的。

    最佳答案

    如果要填充QTableWidget,则需要在插入数据example in documentation之前设置行数和列数(PySide文档比PyQt更好)。而且,您不仅可以将用制表符分隔的文本字符串插入表中,还需要自己准备,然后通过调用QTableWidgetItemQTableWidget.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实例。

    在此示例文件中,我们手工分析了文件,但考虑将standart csv module用于此任务。

    关于Python-PyQt-QTable窗口小部件-添加行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8775447/

    10-12 22:31