v2.4.15 更新内容: 【重要修复】切换界面语言后面板最小宽度跳变、且拉不回原宽度。英文文案普遍比中文长三成到七成,而复选框与按钮**不支持折行**——它们的最小宽度就是「整行文字的宽度」,再顺着「控件 → 页面 → 页签 → 面板」一路上传,就成了整个面板的最小宽度。实测几处现场:TLS 说明勾选框中文 624 像素、英文 888 像素;外部 Agent 特权说明勾选框 642 / 883;底部栏「模型 / 温度 / 跳过确认」一行 324 / 440;MCP「访问令牌 + 三个按钮」一行约 330 / 447。合起来面板最小宽度变成中文 690、英文 931 像素,英文界面下再也拉不回原来的宽度。整改分三层:一是新增两个「文案自动折行」的控件(复选框与按钮各一个,把长文案换成内部可折行的标签,鼠标点击照常落到控件上),文案一字未改、所以翻译表也不用动;二是拆开两处挤在一行的控件组——底部栏拆成「模型」「温度 + 跳过确认」两行,MCP 的访问令牌把三个操作按钮另起一行;三是给每个页面一个**与界面语言无关**的最小宽度下限,面板最小宽度因此恒定为 360 像素(回到既定的最小尺寸设计值),中英文完全一致。这个下限刻意做成「抬下限」而不是「压上限」:内容更宽时取内容宽度,绝不把内容裁掉。 【重要修复】点面板右上角的 × 关闭、再点图标重开,设置页的栏目会按打开次数不断叠加(语言配置、MCP 配置各来一套)。真因是点 × 只把面板从主窗口摘掉,控件对象并没有销毁;而再次打开时会重跑一遍初始化,于是又插入一组分组、又连接一遍信号。实测开关三次后:语言分组 1→2→3、测试连接按钮 1→2→3、TLS 复选框 1→2→3、MCP 分组 1→2→3、设置页布局项数 10→14→18。现在把初始化拆成两半:「控件构建与信号连接」整个进程只做一次;「每次打开都要做」的事情(读设置、挂回主窗口、显示、自适应屏幕、刷新模型列表等)照旧每次都做。开关三次后各项计数恒为 1、1、1、1、10、2。 【实现】折行控件本身踩到四个 Qt 行为坑,都已用注释与单测固定下来:按钮类的尺寸提示**完全不看子布局**,把文字搬进内部标签后它会按「空文案」报 19 像素,竖排布局里看不出来(宽度由父控件给满),一放进横排布局就只剩 19 像素、标签宽度归零、**文案整片消失**(实测「跳过确认」变成一个空方框);复选框的最小尺寸提示会**转调**尺寸提示,覆盖后者就会把「整行文案宽度」变成最小宽度(实测四个复选框瞬间从 19 涨到 875 像素),必须显式向 QWidget 要「布局算出来的最小尺寸」;内部标签是子控件,样式表写的颜色与字号**不会**稳定地传下去(同一句规则,在某些复选框上标签继承了、在另一些上仍是黑字),改为在字体、调色板、样式变化与显示时主动同步;复选框的点击热区默认按**文字范围**计算,文字搬走后只有那个小方框能点,已覆盖为整个控件矩形。 【测试】新增 21 例界面布局守卫:源码级(禁止「文案来自翻译却不折行」的复选框、底部两栏与 MCP 令牌行的拆分、页面最小宽度下限与面板最小尺寸的一致性、初始化闸门)+ 真机行为(尺寸提示、点击热区、字体颜色同步,无真 Qt 时自动跳过)。基线 678 例增至 699 例全绿;Qt5(QGIS 3.44.14)与 Qt6(QGIS 4.2.1)双平台各自真机跑通同一份界面验收脚本(60 项全过)。
yes
bunkmr
2026-10-09T10:42:23.132753+00:00
3.22.0
4.99.0
None
no
Plugin Tags