added tabbed mode

This commit is contained in:
2022-12-20 12:49:56 +01:00
parent 49e837c029
commit 354b1a7ce5

View File

@ -10,6 +10,8 @@ class MDIArea(QMdiArea):
def __init__(self, bar, *args, **kwargs): def __init__(self, bar, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.logo = assets.logo() self.logo = assets.logo()
self.setTabsClosable(True)
self.setTabsMovable(True)
self._add_menu(bar) self._add_menu(bar)
@ -17,17 +19,34 @@ class MDIArea(QMdiArea):
menu = bar.addMenu("&Windows") menu = bar.addMenu("&Windows")
menu.addAction("Cascade") menu.addAction("Cascade")
menu.addAction("Tile") menu.addAction("Tile")
menu.addAction("Tabbed")
menu.addSeparator() menu.addSeparator()
menu.addAction("Close All") menu.addAction("Close All")
menu.triggered[QAction].connect(self.on_menu_select) menu.triggered[QAction].connect(self.on_menu_select)
self.actions = { self.actions = {
"Cascade": self.cascadeSubWindows, "Cascade": self.on_cascade,
"Tile": self.tileSubWindows, "Tile": self.on_tile,
"Tabbed": self.enable_tabbed_view,
"Close All": self.closeAllSubWindows "Close All": self.closeAllSubWindows
} }
def on_cascade(self):
self.enable_subwindow_view()
self.cascadeSubWindows()
def on_tile(self):
self.enable_subwindow_view()
self.tileSubWindows()
def enable_subwindow_view(self):
self.setViewMode(QMdiArea.SubWindowView)
def enable_tabbed_view(self):
self.setViewMode(QMdiArea.TabbedView)
def on_menu_select(self, p): def on_menu_select(self, p):
txt = p.text() txt = p.text()
self.actions[txt]() self.actions[txt]()