0
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2025-07-14 03:31:50 +02:00

feat: add "new()" command to create new dock area windows from client

This commit is contained in:
2024-12-16 12:01:04 +01:00
committed by wakonig_k
parent 6f2eb6b4cd
commit bde5618699
2 changed files with 14 additions and 0 deletions

View File

@ -444,6 +444,12 @@ class BECGuiClient(RPCBase):
with wait_for_server(self):
return client.BECDockArea(gui_id=self._gui_id)
def new(self, name):
"""Ask main window to create a new top-level dock area"""
with wait_for_server(self):
rpc_client = RPCBase(gui_id=f"{self._gui_id}:window", parent=self)
return rpc_client._run_rpc("new_dock_area", name)
def close(self) -> None:
"""
Close the gui window.

View File

@ -1,9 +1,17 @@
from qtpy.QtWidgets import QMainWindow
from bec_widgets.utils import BECConnector
from bec_widgets.widgets.containers.dock.dock_area import BECDockArea
class BECMainWindow(QMainWindow, BECConnector):
def __init__(self, *args, **kwargs):
BECConnector.__init__(self, **kwargs)
QMainWindow.__init__(self, *args, **kwargs)
def new_dock_area(self, name):
dock_area = BECDockArea()
dock_area.resize(dock_area.minimumSizeHint())
dock_area.window().setWindowTitle(name)
dock_area.show()
return dock_area