2010-10-17 169 views
2

我是PyQt中的新成員,目前正在處理用戶將數據插入到lineEdit中的表單,提交後數據將顯示在tablewidget中。 我正在讀取lineEdit的數據並打印它,但不幸的是沒有找到任何方法將lineEdit數據添加到tableWidget。數據應該出現在確切的單元格中。 如果描述方式將會非常有幫助。 謝謝。如何將數據從lineEdit插入到PyQt4的tableWidget中?

回答

2

您是否先用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) 
相關問題