Как вставить данные из lineEdit в tableWidget в PyQt4? - PullRequest
2 голосов
/ 17 октября 2010

Я новичок в PyQt, в настоящее время работаю над формой, где пользователь будет вставлять данные в lineEdit и после отправки данных будет отображаться в табличном виджете.Я читаю данные для lineEdit и печатаю их, но, к сожалению, не нашел способа добавить данные lineEdit в tableWidget. Данные должны отображаться в точной ячейке.Будет очень полезно, если путь описан.Спасибо.

1 Ответ

2 голосов
/ 01 марта 2011

Вы сначала добавляете строку с помощью 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)
...