返回开发日志
飞书多维表同步工具2026-07-09v4.0.6

UI按钮显示不全返工修复

UI优化v4.0.6

需求描述

用户反馈 v4.0.5 的 UI 按钮宽度修复仍未到位,存在三个具体问题:

  1. 凭据管理按钮太宽,"断开全部链接"超出默认主窗体宽度
  2. ERP报表导出"编辑导出任务"窗口无法完整显示"导出名称管理"按钮
  3. 导出名称管理弹窗"关闭"按钮被砍一半,灰色背景色与前景白色不统一

根因深度分析

根因说明教训
只见树木不见森林只验证单个按钮 width 够不够文字显示,未计算所有控件横向排列的总宽度是否超过容器宽度UI布局必须三维度验证:单控件宽+横向总宽+纵向总高
pack/grid布局理解不到位pack(fill=BOTH, expand=True) 的 list_frame 占据所有剩余空间,Treeview height=10 过大时 bottom_frame 被挤出可见区expand=True 的控件需配合合理 height,预留底部空间
控件默认背景色不统一tk.Canvas/tk.Toplevel 默认灰色(#d9d9d9),ttk.Frame 默认白色,未显式统一所有容器控件必须显式设置 bg 一致

改动文件清单

文件改动内容
tabs/credentials_tab.py6个按钮文字精简(测试连接→测试、全部预连接→预连接、断开全部→断开)+宽度统一(width=9~10)
tabs/erp_report_tab.pydimension_frame 改两行布局(行0=维度, 行1=名称+管理按钮);Canvas 设置 bg="white";管理弹窗 500→580px;Treeview height 10→7;Toplevel 设置 bg="white";Combobox width 调整(维度12, 名称28)
gui_sync.py版本号 4.0.5 → 4.0.6

技术要点

  1. ttk.Button width 计算:中文2字符宽,emoji 1.5字符宽,预留10%余量
  2. 横向总宽度约束:dimension_frame 单行5控件=592px > Canvas内部545px,改为两行后行0=210px、行1=439px 均在515px可用宽度内
  3. 背景色统一:Canvas 和 Toplevel 必须显式 configure(bg="white") 与 ttk 主题白色一致

验证结果

  • 语法检查:3个文件全部通过 py_compile
  • 代码审查:所有修改项(bg="white"、width=28、height=7、520x580、版本号4.0.6)均验证存在
  • 宽度计算:凭据6按钮总宽568px<740px、dimension行0=210px<515px、行1=439px<515px、弹窗组件总高392px<580px

踩坑与解决

  • PowerShell 不支持 && 分隔符:改用 ; 连接多条命令
  • tkinter 无显示环境无法渲染测量:改用代码审查+手工宽度计算验证,更可靠