Как создать безрамочное окно с сохранением нативных анимаций
Я написал код для создания безрамочного окна. Проблема в том, что флаг FramelessWindowHint выключает не только отрисовку заголовка и рамок, но и анимацию окна по умолчанию (например, при сворачивании или закрытии/открытии окна). Я хочу убрать рамки и заголовок, но оставить эти анимации.
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QToolButton, QWidget, QHBoxLayout, QStyle
from PySide6.QtCore import Qt
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.resize(500, 300)
self.setWindowFlags(Qt.FramelessWindowHint)
min_button = QToolButton()
min_icon = self.style().standardIcon(QStyle.StandardPixmap.SP_TitleBarMinButton)
min_button.setIcon(min_icon)
min_button.clicked.connect(self.window().showMinimized)
max_button = QToolButton()
max_icon = self.style().standardIcon(QStyle.StandardPixmap.SP_TitleBarMaxButton)
max_button.setIcon(max_icon)
max_button.clicked.connect(self.window().showMaximized)
close_button = QToolButton()
close_icon = self.style().standardIcon(QStyle.StandardPixmap.SP_TitleBarCloseButton)
close_button.setIcon(close_icon)
close_button.clicked.connect(self.window().close)
layout = QHBoxLayout()
layout.addWidget(min_button)
layout.addWidget(max_button)
layout.addWidget(close_button)
layout.setAlignment(Qt.AlignmentFlag.AlignTop)
centr_wid = QWidget()
centr_wid.setLayout(layout)
self.setCentralWidget(centr_wid)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
UPD: Так выглядит анимация окна без установленного флага

Если поставить флаг, анимация пропадает
