【问题标题】:Python - PyQt - QTable Widget - adding rowsPython - PyQt - QTable 小部件 - 添加行
【发布时间】:2012-02-05 05:19:48
【问题描述】:

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

  • 姓名 姓氏 电话 电子邮件

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

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

有人能告诉我如何去做吗,因为我找不到 QTable Widget 提供的解决方案或方法来让你这样做。

【问题讨论】:

    标签: python pyqt qtablewidget


    【解决方案1】:

    当你想填充QTableWidget时,你需要在插入数据example in documentation之前设置行数和列数(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 实例。

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

    【讨论】:

    • 感谢您的帮助。我更改了我的 gui 应用程序,其中我的方法按行读取文件并将行附加到列表中。非常感谢。
    • 对于像我这样的python初学者:我相信要使用QTableWidgetItem,您必须从PyQt4导入QtGui(从PyQt4导入QtCore,QyGui)并使用QtGui.QTableWidgetItem而不是单独使用QTableWidgetItem。
    猜你喜欢
    • 1970-01-01
    • 2012-08-14
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多