Для того чтобы добавить изображение в ячейку таблицы в PyQt5, нужно использовать виджет QLabel. Например, если у вас есть таблица QTableWidget и вы хотите добавить изображение во вторую ячейку во втором столбце, вы можете использовать следующий код:
```python
from PyQt5.QtWidgets import QApplication, QTableWidget, QWidget, QTableWidgetItem, QVBoxLayout, QLabel
from PyQt5.QtGui import QPixmap
class MyTableWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.tableWidget = QTableWidget()
self.tableWidget.setRowCount(1)
self.tableWidget.setColumnCount(2)
# Создаем QLabel с изображением
label = QLabel()
pixmap = QPixmap("path_to_image.jpg")
label.setPixmap(pixmap)
# Добавляем QLabel в ячейку таблицы
self.tableWidget.setCellWidget(0, 1, label)
layout = QVBoxLayout()
layout.addWidget(self.tableWidget)
self.setLayout(layout)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
ex = MyTableWidget()
ex.show()
sys.exit(app.exec_())
```
Чтобы новые данные о животном и пути к картинке добавлялись в новую строку таблицы, нужно изменить метод `setRowCount` на количество строк, соответствующее количеству животных в вашем списке. Затем для каждого элемента списка можно создать отдельную ячейку таблицы с изображением.
```python
# Предположим, что animals - список словарей с данными о животных и путях к изображениям
for i, animal in enumerate(animals):
rowPosition = self.tableWidget.rowCount()
self.tableWidget.insertRow(rowPosition)
# Создаем QLabel с изображением
label = QLabel()
pixmap = QPixmap(animal['path_to_image'])
label.setPixmap(pixmap)
# Добавляем QLabel в ячейку таблицы
self.tableWidget.setCellWidget(rowPosition, 1, label)
# Добавляем остальные данные о животном в соответствующие ячейки
self.tableWidget.setItem(rowPosition, 0, QTableWidgetItem(animal['name']))
self.tableWidget.setItem(rowPosition, 2, QTableWidgetItem(animal['species']))
```
Таким образом, при добавлении новых данных о животных и путях к картинкам, они будут добавляться в новые строки таблицы вместо замены содержимого в верхней строке.