import sys import ctypes import objc import Cocoa from PySide2.QtWidgets import QApplication, QMainWindow,QVBoxLayout,QWidget from PySide2.QtGui import QPalette, QColor class BorderlessWindow(QWidget): def __init__(self, parent=None): super().__init__(parent) view = objc.objc_object(c_void_p=ctypes.c_void_p(int(self.winId()))) self._window = view.window() self._hide_title_bar() def _hide_title_bar(self): self._window.setStyleMask_( self._window.styleMask() | Cocoa.NSFullSizeContentViewWindowMask) self._window.setTitlebarAppearsTransparent_(True) self._window.setTitleVisibility_(Cocoa.NSWindowTitleHidden) class ModernWindow(BorderlessWindow): def __init__(self, window): super().__init__() self.hLayout = QVBoxLayout(self) self.hLayout.addWidget(window) def theme(app): darkPalette = QPalette() darkPalette.setColor(QPalette.Window, QColor(53, 53, 53)) app.setPalette(darkPalette) app.setStyleSheet("""#windowFrame { border-radius: 5px 5px 5px 5px; background-color: palette(Window); }""") class TestWindow(QMainWindow): def __init__(self): QMainWindow.__init__(self) if __name__ == '__main__': app = QApplication(sys.argv) theme(app) mw = ModernWindow(TestWindow()) mw.show() sys.exit(app.exec_())