如何将数据从lineEdit插入到PyQt4的tableWidget中?
问题描述:
我是PyQt中的新成员,目前正在处理用户将数据插入到lineEdit中的表单,提交后数据将显示在tablewidget中。 我正在读取lineEdit的数据并打印它,但不幸的是没有找到任何方法将lineEdit数据添加到tableWidget。数据应该出现在确切的单元格中。 如果描述方式将会非常有帮助。 谢谢。如何将数据从lineEdit插入到PyQt4的tableWidget中?
答
您是否先用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)