Как добавить анимацию методу showMinimized() для FramelessWindowHint
Как добавить анимацию методу showMinimized() для FramelessWindowHint Под анимацией понимаю такую анимацию, как у обычного окна (без FramelessWindowHint) что бы пользователь визуально видел, что окно скрылось, а не закрылось
пример кода
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
#from untitled import Ui_MainWindow
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1100, 460)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(1074, 7, 16, 16))
self.pushButton.setStyleSheet("border-radius: 7px;\n"
"background-color: rgb(255, 0, 4);")
self.pushButton.setText("")
self.pushButton.setObjectName("pushButton")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(0, 0, 1101, 31))
self.label.setStyleSheet("background-color: rgb(65, 65, 65);")
self.label.setText("")
self.label.setObjectName("label")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(1049, 7, 16, 16))
self.pushButton_2.setStyleSheet("background-color: rgb(255, 183, 0);\n"
"border-radius: 7px;")
self.pushButton_2.setText("")
self.pushButton_2.setObjectName("pushButton_2")
self.label.raise_()
self.pushButton.raise_()
self.pushButton_2.raise_()
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
class ExampleApp(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
self.pushButton.clicked.connect(self.myClose)
self.pushButton_2.clicked.connect(self.myMinimize)
self.start = QPoint(0, 0) # +
self.pressing = False # +
def myClose(self):
# self.pushButton.clicked.connect(self.close)
self.close()
def myMinimize(self):
# self.pushButton_2.clicked.connect(self.showMinimized)
self.showMinimized()
# + vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
def mousePressEvent(self, event):
self.start = self.mapToGlobal(event.pos())
self.pressing = True
def mouseMoveEvent(self, event):
if self.pressing:
self.end = self.mapToGlobal(event.pos())
self.movement = self.end-self.start
self.setGeometry(self.mapToGlobal(self.movement).x(),
self.mapToGlobal(self.movement).y(),
self.width(),
self.height())
self.start = self.end
def mouseReleaseEvent(self, QMouseEvent):
self.pressing = False
# + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = ExampleApp()
window.show()
sys.exit(app.exec_())