Как при наведении на кнопку анимировано добавлять рамку в PyQt5?
Мне нужно, что бы при наведении курсора на кнопку у неё плавно появлялась белая рамка, как это сделать? Мой код:
#!/usr/bin/python3
import sys
from PyQt5 import QtWidgets, QtGui
from PyQt5.Qt import *
try:
from PyQt5.QtWinExtras import QtWin
myappid = 'mycompany.myproduct.subproduct.version'
QtWin.setCurrentProcessExplicitAppUserModelID(myappid)
except ImportError:
pass
class Button(QPushButton):
mouseMoved = pyqtSignal()
def mouseMoveEvent(self, event):
self.mouseMoved.emit()
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
def Button(btn_name, text, color1, px, resize, resize_2, move, move_2, color):
btn_name.setMouseTracking(True);
btn_name.setText(text)
btn_name.setStyleSheet(
"background-color: " + color1 + "; color: " + color + "; border-radius: " + str(px) + "px;}QPushButton:pressed {background-image: url(image/img2.1.png) }")
btn_name.setFont(QtGui.QFont("Times", 17, QtGui.QFont.Bold))
btn_name.resize(resize, resize_2)
btn_name.move(move, move_2)
#btn_name.clicked.connect(mains)
def Button_2(btn_name, text, px, resize, resize_2, move, move_2, color):
btn_name.setMouseTracking(True);
btn_name.setText(text)
btn_name.setStyleSheet(
"color: " + color + "; border-radius: " + str(px) + "px")
btn_name.setFont(QtGui.QFont("Times", 17, QtGui.QFont.Bold))
btn_name.resize(resize, resize_2)
btn_name.move(move, move_2)
#btn_name.clicked.connect(mains)
def Button_3(btn_name, text, px, resize, resize_2, move, move_2, color, mains):
btn_name.setMouseTracking(True);
btn_name.setText(text)
btn_name.setStyleSheet(
"color: " + color + "; border-radius: " + str(px) + "px")
btn_name.setFont(QtGui.QFont("Times", 17, QtGui.QFont.Bold))
btn_name.resize(resize, resize_2)
btn_name.move(move, move_2)
btn_name.clicked.connect(mains)
def Image(lbl_name, move_1, move_2, resize_1, resize_2):
lbl_name.setPixmap(self.pix)
lbl_name.move(move_1, move_2)
lbl_name.resize(resize_1, resize_2)
self.lbl2 = QtWidgets.QLabel(self)
self.pix = QtGui.QPixmap("image.jpg")
Image(self.lbl2, 0, 0, 1920, 1080)
self.lbl1 = QtWidgets.QLabel(self)
self.pix = QtGui.QPixmap("textbox.png")
Image(self.lbl1, 0, 750, 1920, 300)
self.btn1 = QPushButton(self)
Button_2(self.btn1, "Вы появились в неизвестном вам месте,\nгде было невероятно красиво", 10, 1000, 100, 430, 810, "White")
self.btn3 = QPushButton(self)
Button_2(self.btn3, "", 10, 150, 100, -30, 500, "White")
self.inv = QtWidgets.QLabel(self)
self.pix = QtGui.QPixmap("inventory_btn.png")
Image(self.inv, -30, 600, 156, 96)
self.btn3 = QPushButton(self)
Button_3(self.btn3, "", 5, 400, 400, -120, 500, "White", self.inventory)
self.inv_open = QtWidgets.QLabel(self)
self.pix = QtGui.QPixmap("inventory.png")
Image(self.inv_open, 50, 0, 1770, 996)
self.inv_open.close()
self.btn4 = QPushButton(self)
Button_3(self.btn4, "", 5, 50, 50, 1675, 90, "White", self.inventory_close)
self.btn4.close()
def inventory(self):
self.btn3.close()
self.btn1.close()
self.lbl1.close()
self.inv.close()
self.inv_open.show()
self.btn4.show()
def inventory_close(self):
self.btn3.show()
self.btn1.show()
self.lbl1.show()
self.inv.show()
self.inv_open.close()
self.btn4.close()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
app.setWindowIcon(QtGui.QIcon('icon.png'))
ex = MainWindow()
ex.resize(1920, 1080)
ex.setWindowTitle('Story Telling')
ex.setWindowIcon(QIcon('icon.png'))
ex.show()
sys.exit(app.exec_())