Expand description
唯一渲染入口(L2):真实 eframe App 与 kittest 建构走同一个 render_body。
布局 v7(0.4.1 BD-UI-54:拆停靠库、回归原生容器;蓝本 = Python 主窗 mainwindow.py): TopBottomPanel(菜单) → TopBottomPanel(行情带) → SidePanel(下单) → CentralPanel(数据区 2×2 = 薄 QSplitter 两刀) → Window 弹窗。
- 行情带 = 六所固定 tab 条(
state::MARKET_ORDER,用户裁定「每个交易所都要一个」; 标签 = 交易所中文名,条在表之下且先给它预留高度不许外溢 —— 九期 BD-UI-62) 加当前所的行情表;每个所都有自己的表与空态。只有 tick 表,没有按所的滚动表 —— 唯一源 =eTick.订阅流,不从 bar 回。行内任意格单击 = 带入下单面板 (ek 增值,方案钉:盘口四列带方向,买1 价/量 → 卖,卖1 价/量 → 买,价格列 顺带填价,其余列方向保持默认 —— 0.2.1import_tick),双击 = 弹 K线窗。 - 下单侧(
SidePanel::left,缺省 300 ≈ PythonsetFixedWidth(300)):下单面板 (Python TradingWidget 等价:9 字段 + 委托 + 全撤;表单 = 网格,按钮/提示语都是 网格行;网格后置 err label 由 ScrollArea 吸收 sizing 退让,BD-UI-27)+ 盘口(买5卖5,Python TradingWidget 内序:字段钮 → 盘口)。 - 数据区组容器:委托|未成交 / 成交 / 持仓 / 资金|日志 四组(Python 四个 QTabWidget
等价,tab 条 = 自绘
tab_label),2×2 两刀 =crate::splitters(份额可拖, 态在shared.data_split,恢复布局回 50:50);撤单钮仅活动行,既有 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_
CFG_ REFRESH - 运维窗「配置托底」节:段目录刷新钮(0.6.0 环节8)。
- BTN_
PIPELINE_ REFRESH - 运维窗:装配显形手动重问钮(0.5 M3 —— 管线读数改吃事件后唯一的手动口子)。
- 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 - 菜单项:运维(弹运维窗)。
- TXT_
PRODUCT_ CLASS_ SCOPE - F4 口径句(0.2.20,D-UI-F4-SCOPE):账户面板底部与配置弹窗共用这一条常量。 两处各写一遍字面量 = 将来不同式的坑(s57 数的是“两处都在“)。
Functions§
- apply_
ui_ style - 字号 + 间距 + 控件规格 + 主题视觉(0.2.30 起全部走
crate::tokens;主题只有一套 Qt深色,Theme枚举与菜单循环钮已删 —— 裁定 8)。真实 App、独立子窗(immediate 共享同一 Context)、kittest 三处同源。 语义色(涨红跌绿 / 多红空绿 / 警告橙 / 错误深红 / 成功深绿 / 次级灰)不在这一层: 它们在tokens::semantic里恒定 —— 0.8.0 的口径是「hue 恒定、明度跟档」 (判据u11钉着:浅档也不许把跌染成蓝),渲染侧走tokens::rise(ctx)等访问器取当前档。 - exchange_
tab_ name - 行情带 = 当前所的行情表 + 六所固定 tab 条(0.4.1 BD-UI-54 回归原生容器; 「每交易所一格」= 六个 tab,每个 tab 都有自己的表与空态,s73 口径不变)。
- import_
tick - 行情带入(0.2.1 扩展):任意列单击 = 带入合约+交易所;盘口四列带方向 (买1价/买1量 → 卖,卖1价/卖1量 → 买 —— 吃对手挂价口径),两个价格列 顺带把该价填进价格格;其余列方向/价格保持表单默认(用户裁定)。
- render_
body - 画一窗(官方面板组合:render_body 直接开顶层面板,不自嵌 CentralPanel)。
- stat_
color - 运维窗「统计」列的颜色(0.4.5 P7d 首发;0.5 M6 加容量参数;0.7.0 背压刀改吃水位)。
- table_
fill_ probe - 判据侧读口(0.4.1 七期 BD-UI-60):这张表这一拍的「列宽总和」与「补宽目标宽」。