1
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2026-03-04 16:02:51 +01:00

wip dock area with custom style

This commit is contained in:
2025-07-30 16:39:13 +02:00
parent 66c64cd0b1
commit 3bda713be7

View File

@@ -1,7 +1,6 @@
import PySide6QtAds as QtAds
from PySide6.QtWidgets import QApplication
from PySide6.QtGui import QIcon
from bec_qthemes import material_icon
from qtpy.QtWidgets import QApplication
from bec_widgets.widgets.containers.main_window.main_window import BECMainWindow
from bec_widgets.widgets.control.scan_control import ScanControl
@@ -9,6 +8,48 @@ from bec_widgets.widgets.editors.monaco.monaco_widget import MonacoWidget
from bec_widgets.widgets.plots.waveform.waveform import Waveform
from bec_widgets.widgets.services.bec_queue.bec_queue import BECQueue
# ── Fancy dock styles ──
_LIGHT_DOCK_QSS = """
QDockWidget {
background: #fafafa;
border: 1px solid #ccc;
border-radius: 4px;
}
QTabBar::tab {
background: #e0e0e0;
padding: 6px;
margin: 1px;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
color: #333;
}
QTabBar::tab:selected {
background: #fff;
font-weight: bold;
}
"""
_DARK_DOCK_QSS = """
QDockWidget {
background: #2b2b2b;
border: 1px solid #444;
border-radius: 4px;
}
QTabBar::tab {
background: #3c3f41;
padding: 6px;
margin: 1px;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
color: #bbb;
}
QTabBar::tab:selected {
background: #323232;
color: #fff;
font-weight: bold;
}
"""
class AdvancedDockArea(BECMainWindow):
def __init__(self, parent=None):
@@ -64,6 +105,19 @@ class AdvancedDockArea(BECMainWindow):
)
self.dock_manager.addDockWidgetTabToArea(self.dock_monaco_2, editor_area)
theme = getattr(self.app, "theme", None)
current = theme.theme if theme else "light"
qss = _DARK_DOCK_QSS if current.lower() == "dark" else _LIGHT_DOCK_QSS
self.dock_manager.setStyleSheet(qss)
editor_area.resize(500, 1000)
def change_theme(self, theme: str):
# call base so palettes, icons, etc. switch
super().change_theme(theme)
# then reapply our dock QSS
qss = _DARK_DOCK_QSS if theme.lower() == "dark" else _LIGHT_DOCK_QSS
self.dock_manager.setStyleSheet(qss)
if __name__ == "__main__":
import sys