У меня есть QTableView для отображения некоторых данных базы данных в виде сетки. Одним из полей является путь к изображению, и я хотел бы отобразить эти изображения в своей таблице.
Я пытался что-то с делегатом, но мне не очень-то удобно с ним, и я не мог заставить его работать Я тоже что-то пробовал с ролью:
if index.column() == 4:
if role == QtCore.Qt.DecorationRole:
label = QtGui.QLabel()
path = "path/to/my/picture.jpg"
image = QtGui.QImage(str(path))
pixmap = QtGui.QPixmap.fromImage(image)
label.setPixmap(pixmap)
return label
Этот кусок кода вдохновлен тем, что я нашел на другом форуме, и это должно было сработать. Однако это ничего не делает для меня, только замедляет выполнение моего кода.
Есть идеи, почему это не работает? Если у вас есть пример с делегатом, я бы тоже его оценил!
Спасибо за внимание
ПОСТАНОВИЛИ:
Я получил это, работая с пользовательским делегатом. Вот мой код, если кому-то интересно:
class ImageDelegate(QtGui.QStyledItemDelegate):
def __init__(self, parent):
QtGui.QStyledItemDelegate.__init__(self, parent)
def paint(self, painter, option, index):
painter.fillRect(option.rect, QtGui.QColor(191,222,185))
# path = "path\to\my\image.jpg"
path = "araignee_de_mer.jpg"
image = QtGui.QImage(str(path))
pixmap = QtGui.QPixmap.fromImage(image)
pixmap.scaled(50, 40, QtCore.Qt.KeepAspectRatio)
painter.drawPixmap(option.rect, pixmap)