Expand description
唯一渲染入口(L2):真实 eframe App 与 kittest 建构走同一个 render_body。
布局 v5(BD-UI-29 面板化,官方面板组合;蓝本 = Python 主窗 mainwindow.py): TopBottomPanel(菜单) → TopBottomPanel(行情带) → SidePanel(下单侧) → CentralPanel(2×2 监控格) → Window 弹窗,两带物理分离。
- 行情带(TopBottomPanel::resizable = Python 分带 splitter 语义,缺省 240):
交易所二级 tab(只列有 tick 的所)+ tick 表(唯一源 =
eTick.订阅流,不从 bar 回);行内任意格单击 = 带入下单面板(ek 增值,方案钉; 盘口四列带方向:买1 价/量 → 卖,卖1 价/量 → 买,价格列顺带填价,其余列 方向保持默认——0.2.1import_tick),行内任意格双击 = 弹 K线窗。 - 下单侧(SidePanel::resizable,缺省 250):下单面板常驻(Python TradingWidget 等价:9 字段 + 委托 + 全撤;表单 = 网格,按钮/提示语都是 网格行;网格后置 err label 由 ScrollArea 吸收 sizing 退让,BD-UI-27)+ 盘口(买5卖5,Python TradingWidget 内序:字段钮 → 盘口)。
- 2×2 监控格(CentralPanel 内,响应式分配,无定宽定高,BD-UI-29) 「委托|未成交」「成交」「持仓」「资金|日志」(撤单钮仅活动行,既有 s11 钉口径;委托行双击 = 撤单,Python OrderMonitor 等价;格内宽表走横向滚动, D7 口径)。
- 弹窗两式(BD-UI-32):运维窗(菜单「运维」:插件/服务/依赖;0.2.10 起 流控查询钮随 sim 退场撤除)、 CTP 配置窗(菜单「网关」,CTP 插件自己的界面)= egui::Window 依附主窗; 查询合约窗(菜单「查询合约」:查询 + 勾选 + 订阅钮,Python ContractManager 等价)、K线窗(双击弹出,按合约多开)= 独立 OS 窗(show_viewport_immediate, 原生最小化/最大化/关闭,可拖出主窗;后端不支持多窗自动回退 egui::Window, kittest 走回退面断言)。
- 订阅两入口(用户裁定,网关窗不定死订阅):下单面板代码框回车订阅
(Python returnPressed 等价);查询合约窗勾选订阅。合约数据 =
eContract.自动回流(ek-ctp 登录后自动查询,UI 只收不催)。 - 回灌表单与票据文本框已退役(界面面);总线口(
UiCmd::Reload等)保留。
kittest 断言面:各单元格独立 Label(get_by_label 直查);操作走
push_cmd 入队(ui 插件 eTimer 辞行出队),确认状态就地翻位,零自制通道。
隔离红标:行状态含 Quarantin(快照扫描,BD-UI-17)。
Constants§
- BTN_
ACCOUNT_ ADD - 账户面板:添加账户钮(派生注册名 → svctl.start + {gw}.configure)。
- BTN_
CANCEL_ ALL - 全撤按钮标签(v4;活动委托逐个走既有撤单 ask)。
- BTN_
CANCEL_ CONFIRM - 取消待确认按钮标签。
- BTN_
CANCEL_ ORDER - 撤单按钮前缀(S5;行级标签 =
撤单 {orderid})。 - BTN_
CLEAR_ LOGS - 清空日志按钮的唯一可访问性标签(测试与 UI 同源)。
- BTN_
SEND_ ORDER - 下单提交按钮标签(v4 = Python「委托」钮)。
- BTN_
SUBSCRIBE_ SELECTED - 菜单项 → 弹窗入口钮(BD-UI-31 一键直达:菜单钮即入口,一步弹窗, 不再挂下拉层;入口钮标签 = 菜单名本身)。 查询合约窗订阅钮(勾选集 → ask ctp.subscribe)。
- MENU_
ACCOUNTS - 菜单项:账户(弹账户面板;多账号面入口,规划 §5.B。旧「网关」单账号窗 已退役收纳进账户面板的添加/编辑表单,旧常量随之删除)。
- MENU_
CONTRACTS - 菜单项:查询合约(弹查询合约窗;Python ContractManager 等价)。
- MENU_
HELP - 菜单项:帮助。
- MENU_
OPS - 菜单项:运维(弹运维窗)。
Functions§
- apply_
ui_ style - 全局字号(BD-UI-32 R1,用户实看裁定「整体字偏小」,对照 Python 版): body/button/strong 16px、small 14px、heading 22px、monospace 15px (egui 缺省 13/12/18/12)。render_body 顶部统一施加,真实 App 与 kittest 同源。
- apply_
ui_ style_ for - 字号 + 主题视觉(BD-UI-34,用户问「PySide6 式可换主题」):主题 = UiShared 运行期态(菜单钮一键循环),视觉在此统一施加——真实 App、独立子窗 (immediate 共享同一 Context)、kittest 三处同源。语义色(多红/空绿/ 隔离红/选中蓝)不在此列:渲染侧恒定直绘,跨主题不漂移(金融语义)。
- import_
tick - 行情带入(0.2.1 扩展):任意列单击 = 带入合约+交易所;盘口四列带方向 (买1价/买1量 → 卖,卖1价/卖1量 → 买 —— 吃对手挂价口径),两个价格列 顺带把该价填进价格格;其余列方向/价格保持表单默认(用户裁定)。
- render_
body - 画一窗(官方面板组合:render_body 直接开顶层面板,不自嵌 CentralPanel)。