"""Module setting up ui of dock window.""" from libs.qdarktheme.qtpy.QtCore import Qt from libs.qdarktheme.qtpy.QtWidgets import QDockWidget, QMainWindow, QTextEdit, QVBoxLayout, QWidget class DockUI: """The ui class of dock window.""" def setup_ui(self, win: QWidget) -> None: """Set up ui.""" # Widgets left_dock = QDockWidget("Left dock") right_dock = QDockWidget("Right dock") top_dock = QDockWidget("Top dock") bottom_dock = QDockWidget("Bottom dock") # Setup widgets left_dock.setWidget(QTextEdit("This is the left widget.")) right_dock.setWidget(QTextEdit("This is the right widget.")) top_dock.setWidget(QTextEdit("This is the top widget.")) bottom_dock.setWidget(QTextEdit("This is the bottom widget.")) for dock in (left_dock, right_dock, top_dock, bottom_dock): dock.setAllowedAreas( Qt.DockWidgetArea.LeftDockWidgetArea | Qt.DockWidgetArea.RightDockWidgetArea | Qt.DockWidgetArea.BottomDockWidgetArea | Qt.DockWidgetArea.TopDockWidgetArea ) # Layout main_win = QMainWindow() main_win.setCentralWidget(QTextEdit("This is the central widget.")) main_win.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, left_dock) main_win.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, right_dock) main_win.addDockWidget(Qt.DockWidgetArea.TopDockWidgetArea, top_dock) main_win.addDockWidget(Qt.DockWidgetArea.BottomDockWidgetArea, bottom_dock) layout = QVBoxLayout(win) layout.addWidget(main_win) layout.setContentsMargins(0, 0, 0, 0)