<p>QTableWidget – это виджет в PyQt, который представляет собой таблицу с возможностью отображения и редактирования данных. Он является мощным инструментом для отображения данных табличного типа.</p>
<p>При создании QTableWidget мы должны задать количество строк и столбцов, которые будут отображаться в таблице. Например, чтобы создать таблицу с 3 строками и 4 столбцами, мы можем использовать следующий код:</p>
<pre class="hljs"><code class="python">
table = QTableWidget(3, 4)
</code></pre>
<p>Далее мы можем заполнить таблицу данными, используя метод setItem(row, column, item), где row и column - это индексы строки и столбца соответственно, а item - это экземпляр QTableWidgetItem, содержащий данные, которые мы хотим отобразить. Например, следующий код добавляет текстовые элементы в первую строку таблицы:</p>
<pre class="hljs"><code class="python">
item1 = QTableWidgetItem("Значение 1")
item2 = QTableWidgetItem("Значение 2")
item3 = QTableWidgetItem("Значение 3")
table.setItem(0, 0, item1)
table.setItem(0, 1, item2)
table.setItem(0, 2, item3)
</code></pre>
<p>Кроме того, QTableWidget предлагает различные функции для настройки внешнего вида таблицы и взаимодействия с данными. Например, мы можем использовать setHorizontalHeaderLabels(labels) для установки заголовков столбцов и setVerticalHeaderLabels(labels) для установки заголовков строк. Это позволяет пользователю легко определить данные, отображаемые в таблице.</p>
<pre class="hljs"><code class="python">
table.setHorizontalHeaderLabels(["Столбец 1", "Столбец 2", "Столбец 3"])
table.setVerticalHeaderLabels(["Строка 1", "Строка 2", "Строка 3"])
</code></pre>
<p>Также с помощью QTableWidget можно осуществлять различные операции с данными, такие как сортировка, выделение и манипулирование данными. Мы можем использовать sortItems(col, order) для сортировки данных в столбце с индексом col по возрастанию или убыванию (order = Qt.AscendingOrder или Qt.DescendingOrder). Метод selectedItems() возвращает список элементов, которые были выбраны пользователем, что позволяет нам выполнить различные действия с выбранными данными.</p>
<pre class="hljs"><code class="python">
table.sortItems(0, Qt.AscendingOrder)
selected_items = table.selectedItems()
</code></pre>
<p>Кроме того, QTableWidget предоставляет различные методы для получения и редактирования данных в таблице. Мы можем использовать item(row, column) для получения элемента QTableWidgetItem в определенной строке и столбце, а setText(text) для установки текста элемента.</p>
<pre class="hljs"><code class="python">
item = table.item(0, 0)
text = item.text()
item.setText("Новое значение")
</code></pre>
<p>Таким образом, QTableWidget представляет собой мощный инструмент для отображения и редактирования данных в виде таблицы. Он обеспечивает широкий спектр функций для настройки внешнего вида таблицы, а также операций с данными. Использование QTableWidget в PyQt позволяет разработчикам создавать функциональные и красивые пользовательские интерфейсы, включающие таблицы с данными.</p>