Cкрол изображения (Pixmap.scroll)

Доброго времени суток!

Я использую PyQt5 и хочу сделать скрол изображения на 26 пикселей по оси X

pixmap.scroll(26, 0, pixmap.rect())

Даный метод возвращает объект класса QRegion() и что с ним делать?.

Как мне установить новое изображение методом setPixmap?

UPD: У меня есть QLabel c enterEvent и leaveEvent. Задумка в том чтобы при наведении курсора на этот QLabel размером 26х26 px изображение скролилось на 26 пикселей вправо. И обратно при отведении курсора от QLabel. Тем самым данная кнопка будет реагировать на курсор, изменяясь с красного крестика на белом фоне на белый крестик на красном фоне.

изображение


Ответы (2 шт):

Автор решения: gil9red

А если вообще обойтись без scroll?

Подготовить 2 варианта состояния и переключаться между ними:

from PyQt5.QtWidgets import QApplication, QLabel
from PyQt5.QtGui import QPixmap


class Label(QLabel):
    def __init__(self):
        super().__init__()

        self.pixmap = QPixmap('52rQ3.png')
        self.pixmap_leave = self.pixmap.copy(0, 0, 26, 26)
        self.pixmap_enter = self.pixmap.copy(26, 0, 52, 26)

        self.setPixmap(self.pixmap_leave)

    def enterEvent(self, event):
        self.setPixmap(self.pixmap_enter)

    def leaveEvent(self, event):
        self.setPixmap(self.pixmap_leave)


if __name__ == '__main__':
    app = QApplication([])

    mw = Label()
    mw.show()

    app.exec()

leave: введите сюда описание изображения

enter: введите сюда описание изображения

→ Ссылка
Автор решения: Lo_okiMan

Решил даный вопрос заданием отрицательного отступа при наведении на QLabel.

QLabel.setMargin(-26)

https://doc.qt.io/qt-5/qlabel.html#margin-prop

→ Ссылка