Добавление данных в QTableWidget с использованием PyQt4 в Python

Я хочу добавить свои данные в таблицу, используя pyqt в python. Я обнаружил, что должен использовать функцию setItem() чтобы добавить данные в QTableWidget и QTableWidget ему номер строки и столбца и QTableWidgetItem . Я сделал это, но когда я хочу отобразить таблицу, она полностью пуста. Возможно, я сделал глупую ошибку, но, пожалуйста, помогите мне. Вот мой код:

 from PyQt4 import QtGui class Table(QtGui.QDialog): def __init__(self, parent=None): super(Table, self).__init__(parent) layout = QtGui.QGridLayout() self.led = QtGui.QLineEdit("Sample") self.table = QtGui.QTableWidget() layout.addWidget(self.led, 0, 0) layout.addWidget(self.table, 1, 0) self.table.setItem(1, 0, QtGui.QTableWidgetItem(self.led.text())) self.setLayout(layout) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) t = Table() t.show() sys.exit(app.exec_()) 

One Solution collect form web for “Добавление данных в QTableWidget с использованием PyQt4 в Python”

То, что вы ищете, это setRowCount() и setColumnCount() . Вызовите их в QTableWidget чтобы указать количество строк / столбцов. Например

 ... self.table = QtGui.QTableWidget() self.table.setRowCount(5) self.table.setColumnCount(5) layout.addWidget(self.led, 0, 0) layout.addWidget(self.table, 1, 0) self.table.setItem(1, 0, QtGui.QTableWidgetItem(self.led.text())) ... 

Этот код сделает таблицу 5×5 и отобразит «Образец» во второй строке (с индексом 1) и первом столбце (с индексом 0).

Без вызова этих двух методов QTableWidget не знал бы, насколько велика таблица, поэтому установка элемента в позиции (1, 0) не имеет смысла.

В случае, если вы не знаете об этом, документация Qt подробно описана и содержит множество примеров (которые легко могут быть преобразованы в Python). Особенно полезны разделы «Подробное описание». Если вы хотите получить дополнительную информацию о QTableWidget , перейдите по ссылке: http://qt-project.org/doc/qt-4.8/qtablewidget.html#details

Python - лучший язык программирования в мире.