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 шт):
А если вообще обойтись без 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()
Решил даный вопрос заданием отрицательного отступа при наведении на QLabel.
QLabel.setMargin(-26)


