2.8 KiB
2.8 KiB
高 DPI 与响应式界面修复(2026-09-16)
修复效果
- 「自动」跟随系统显示缩放,支持 100%、125%、200%、300% 等倍率。Qt 与内嵌网页各使用逻辑像素,不再把系统放大后的界面压回固定画布。
- 字体、SVG 图标、按钮、边距保持统一比例。长页面滚动;空间不足时卡片减少列数,导航区独立滚动,监听和设置入口保留在侧栏底部。
- 1080p、4K 和更高分辨率使用同一套逻辑布局。调整窗口高度和切换页面不会改变文字大小。
- 初始窗口按当前显示器可用区域设定;移动到另一显示器或改变显示设置后,窗口重新约束在可用区域内。已处理负坐标副屏和显示器移除事件。
- 修复原生 QBoxLayout、QGridLayout 的间距未跟随界面大小变化的问题。
使用
退出后从本目录重新运行 python wechat_gui_qt.py,进入「系统设置 → 界面大小」选择「自动」。以后直接调整 Windows 的显示缩放即可。
需要额外放大时可选择 100%–300%,相对于系统缩放立即生效,无需重启。恢复「自动」即可跟随系统。此设置不再写入进程级 QT_SCALE_FACTOR;开发者显式设置的环境变量仍由 Qt 正常处理。
这次更新的是协议目录源码及 UI 资源,已有 EXE/安装包未重新打包;旧 EXE 不会自动读取新源码。原监听、账号、聊天和协议配置没有被本次更新覆盖。
验证
- 138 项显示适配、Qt 控制台、悬浮胶囊、运行设置、模拟协议链路和打包路径测试通过。
- 8 个页面 × 7 种显示条件,共 56 组浏览器检查:无横向溢出、无页面脚本异常,含 125% 分数倍率、2 倍/3 倍和小窗口。
- 实际 Qt WebEngine 以 1、2、3 倍模拟 DPI 运行:960 逻辑像素宽的窗口分别输出 960、1920、2880 物理像素;Qt 与网页 DPR 一致,字体布局逻辑尺寸一致。
- 窗口换屏、负坐标屏幕、缩小可用区域及移除显示器通过模拟事件回归;本机未进行实体三显示器拖拽验收。
- 没有向真实客户发送测试消息。
文件与备份
主要文件:wechat_gui_qt.py、assets/ui/console-app.js、assets/ui/console-responsive.css、assets/ui/zhenyang-ai-console.html。
备份:backups/dpi-adaptation-20260916。哈希清单与测试结果:UI_DPI_MANIFEST_20260916.json。现有打包配置已包含整个 assets/ui 目录,新样式会随下次打包进入安装包。
技术依据:Qt 使用设备无关像素并按显示器 DPR 绘制,详见 Qt High DPI。页面采用参与布局计算的缩放及响应式栅格,详见 CSS zoom。