Как сделать псевдо анимацию кнопки в PyQt5?

QAbstractButton {
    background-color:white;
    qproperty-icon:url(":/Icons/delete_byte");
}

QAbstractButton:hover, QAbstractButton:focus {
    background-color:grey;
    qproperty-icon:url(":/Icons/deleted");
}

Есть какая-то кнопка, которая должна менять свою картинку, когда на нее наводятся.

Как это сделать? Сеё чудный Style Sheet не работает, работает только если qproperty (во второй части) заменить на border, и то не так как задумано. Оно становится задним фоном.

Возможно ли это реализовать так как я хочу?


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

Автор решения: S. Nick

Всегда предоставляйте минимально-воспроизводимый пример, который демонстрирует проблему.

Вам надо лучше рассказывать и показывать что у вас задумано.

Я не уверен, что правильно понял вас, но попробуйте так:

import sys
from PyQt5.Qt import *


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        
        self.centralwidget = QWidget()
        self.centralwidget.setObjectName("centralwidget")
        self.setCentralWidget(self.centralwidget)
        
        self.pushButton = QPushButton()
        self.pushButton.setObjectName("pushButton")
        
        self.gridLayout = QGridLayout(self.centralwidget)
        self.gridLayout.addWidget(self.pushButton)
        

QSS = '''
#pushButton {
    background-color: red;
    min-width:  210px;
    min-height: 130px;
    max-width:  210px;
    max-height: 130px;
    border-radius: 65px;        
    border: 2px solid #09009B;
    
    qproperty-icon: none;
    image: url("Ok.png"); 
}

#pushButton:hover {
    background-color: blue;
    image: url("boy33.png");   
}
'''
        

if __name__ == "__main__":
    app = QApplication(sys.argv)
    app.setStyleSheet(QSS)
    w = MainWindow()
    w.show()
    sys.exit(app.exec())

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


Ok.png

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

boy33.png

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

→ Ссылка