如何将lineEdit的数据插入tableWidget中?

2 投票
1 回答
3487 浏览
提问于 2025-04-16 05:37

我刚开始学习PyQt,现在正在做一个表单,用户可以在一个输入框(lineEdit)里输入数据,提交后这些数据会显示在一个表格(tableWidget)里。我现在能从输入框读取数据并打印出来,但就是找不到办法把这些数据添加到表格里,数据应该出现在准确的单元格中。如果能详细说明一下方法就太好了。谢谢。

1 个回答

3

你是不是先用insertRow()添加了一行?这里有一个简单的示例应用,对我来说是有效的。在调用setItem()时,记得设置行和列。

from PyQt4.QtGui import QApplication, QLineEdit, QTableWidget, QTableWidgetItem, \
    QWidget, QVBoxLayout

class Window(QWidget):
    def __init__(self, parent=None):
        super(Window, self).__init__(parent)

        self.lineEdit = QLineEdit()

        self.tableWidget = QTableWidget()
        self.tableWidget.setColumnCount(1)

        layout = QVBoxLayout()
        layout.addWidget(self.lineEdit)
        layout.addWidget(self.tableWidget)
        self.setLayout(layout)

        # When 'enter' is pressed call the 'addItem' function.
        self.lineEdit.returnPressed.connect(self.addItem)

    def addItem(self):
        text = self.lineEdit.text()

        # Get the number of rows in the TableWidget and insert
        # a new row at the end.
        lastrow = self.tableWidget.rowCount()
        self.tableWidget.insertRow(lastrow)

        item = QTableWidgetItem(text)

        # .setItem(row, column, item)
        self.tableWidget.setItem(lastrow, 0, item)

撰写回答