2010-10-17 5 views
2

Je suis nouveau dans PyQt, travaille actuellement sur un formulaire où l'utilisateur va insérer des données dans lineEdit et après avoir soumis les données seront affichées dans le widget de table. Je lis des données pour lineEdit et l'imprime mais malheureusement je ne trouve aucun moyen d'ajouter des données de lineEdit à la tableWidget. Les données doivent apparaître dans la cellule exacte. Ce sera très utile si le chemin est décrit. Merci.comment insérer des données de lineEdit à tableWidget dans PyQt4?

Répondre

2

Ajoutez-vous une ligne avec insertRow() en premier? Voici un exemple d'application rapide qui fonctionne pour moi. Définissez la ligne et la colonne lors de l'appel de 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) 
Questions connexes