Skip to main content

Module splitters

Module splitters 

Source
Expand description

薄 QSplitter(0.4.1,BD-UI-54):拆掉 egui_dock 后,数据区 2×2 的两刀分栏。

Python right_splitter 就是 QSplitter(mainwindow.py:253,vertical 50:50), 所以这里补的正是 Python 本来就有的自由度 —— 可拖的分隔条 —— 而不是 dock 那套「任意拖动重排」:Python 的 QDockWidget 全是 NoDockWidgetFeatures (mainwindow.py:121/137/179/199/237/267),连拖都不给,那一层是 dock 白给的。

规格对照 QSplitter:

  • 竖刀 = 左右分,横刀 = 上下分;份额是 0..1 浮点(左侧/上侧占比),拖完记在 UiShared(会话内;「恢复布局」回 0.5)。
  • 分隔条命中带 6px(qss splitter handle 形制),拖拽/悬停画 ACCENT4 高亮线; 平时画当前档色板的描边那支 1px 线(与 chrome 分隔线同源;0.8.0 双档前是深档常量), 不改光标 (0.4.1 七期 BD-UI-60,用户裁定「鼠标就是正常形状,不要随便变」:旧口径每帧 无条件 set_cursor_icon(ResizeVertical/ResizeHorizontal) —— 不看 hover 也不看 drag,整窗光标都被它拽成resize 箭头)。
  • 分隔条是纯装饰命中带:不进 AccessKit 名册(s39「面板与把手是装饰」同口径); 份额断言走 ui_state 状态钉,几何断言走渲染出的表头锚点(kittest)。

Constants§

DATA_SPLIT_DEFAULT
缺省两刀各半(Python right_splitter 50:50)。

Functions§

clamp_frac
份额夹取(拖出界就地停住 = QSplitter 的 minimumSize 语义)。
quad
2×2 四格 + 两条贯穿的分隔条(0.4.1 九期 BD-UI-62,用户实看:「竖线拉的时候只高跳了 上面委托和成交之间,持仓和资金之间那条竖着的白色跳线没有跳出来 —— 只跳了一半」)。