PyQt5 QTableWidget: примеры использования и советы по работе с таблицами
PyQt5 это Python библиотека, которая позволяет создавать графические интерфейсы с помощью Qt Framework. QTableWidget является одним из виджетов этой библиотеки и представляет таблицу с возможностью редактирования ячеек.
Пример кода создания QTableWidget выглядит следующим образом:
python
import sys
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem
class MyTable(QTableWidget):
def __init__(self, rows, columns):
super().__init__(rows, columns)
self.initUI()
def initUI(self):
# Задаем заголовки таблицы
self.setHorizontalHeaderLabels(['Column1', 'Column2', 'Column3'])
# Заполняем ячейки таблицы
for row in range(self.rowCount()):
for column in range(self.columnCount()):
item = QTableWidgetItem('Row{} Column{}'.format(row + 1, column + 1))
self.setItem(row, column, item)
if __name__ == '__main__':
app = QApplication(sys.argv)
table = MyTable(3, 3)
table.show()
sys.exit(app.exec_())
Здесь создается класс MyTable, который унаследован от QTableWidget. В конструкторе класса задается количество строк и столбцов таблицы, после чего вызывается метод initUI, где определяется заголовок таблицы и заполняются ячейки.
Также на примере этого кода можно увидеть, что для работы с PyQt5 необходимо сначала создать объект QApplication, а затем вызвать метод exec_() для запуска работы приложения.
Здесь же стоит отметить некоторые важные функции для работы с QTableWidget:
1. setRowCount и setColumnCount - задают количество строк и столбцов в таблице.
2. setItem - задает объект QTableWidgetItem для определенной ячейки таблицы.
3. setHorizontalHeaderLabels и setVerticalHeaderLabels - задает заголовки для столбцов и строк соответственно.
4. item - получение элемента таблицы по заданным координатам.
QTableWidget также имеет ряд методов для работы с данными, например, сортировка, изменение цвета столбцов и строк, настройка размеров ячеек и т.д.
В целом, QTableWidget является очень полезным виджетом для работы с таблицами и может быть использован для создания как простых, так и сложных форм для ввода и отображения данных в PyQt5.