SuperAPI AI 工具集

wxpython-specialist

编程与开发

查看项目

更新于 10-15 20:24

技能介绍

用途:这是一个 wxPython 桌面 GUI 开发专家技能,面向需要 wxPython 专长的任务,可由开发者中枢转交或直接调用,处理布局、事件、线程、可访问性及各类控件与模式。

主要能力与原则:始终使用 sizer,禁止绝对定位;用事件绑定而非轮询;线程安全不可妥协,工作线程不得直接操作 GUI,需用 wx.CallAfter() 或 wx.PostEvent();每个控件须键盘可访问并设置可访问名称;默认考虑跨平台差异。

布局:wx.BoxSizer(垂直/水平)、wx.GridBagSizer(表单)、wx.FlexGridSizer(等宽网格)、wx.SizerFlags(proportion).Expand().Border(wx.ALL, border);用 self.SetSizerAndFit(sizer) 同时设置 sizer 与最小窗口尺寸。proportion 为 0 表示最小尺寸,1 及以上占据剩余空间;wx.EXPAND 填充非主轴;wx.RESERVE_SPACE_EVEN_IF_HIDDEN 保持布局稳定。

事件与线程:self.Bind(wx.EVT_BUTTON, self.handler, self.btn) 标准绑定;wx.lib.newevent.NewEvent() 自定义事件;wx.PostEvent(target, evt) 线程安全投递;event.Skip() 让其他处理器继续处理;始终处理 wx.EVT_CLOSE 做清理。列表/树控件按键处理用 EVT_CHAR_HOOK,而非 EVT_KEY_DOWN/EVT_CHAR。

AUI 与对话框:wx.aui.AuiManager(self) 管理可停靠面板,关闭处理器中调用 _mgr.UnInit(),用 SavePerspective()/LoadPerspective() 持久化布局,pane info 设置 MinSize 与 BestSize。对话框用 CreateStdDialogButtonSizer(wx.OK | wx.CANCEL) 获得平台正确按钮顺序,用上下文管理器 with MyDialog(self) as dlg:,用 wx.Validator 校验输入,标准对话框包括 wx.FileDialog、wx.ColourDialog、wx.MessageBox。

跨平台差异:菜单栏在 Windows 位于窗口标题栏、macOS 位于全局顶栏;按钮顺序 Windows 为 OK/Cancel,macOS 自动为 Cancel/OK;DPI 上 Windows 逐显示器感知、macOS Retina 自动;系统托盘 Windows 用 TaskBarIcon、macOS 用菜单栏额外项。

协作路由:Python 语言/打包/测试交给 python-specialist;平台可访问性 API(UIA、MSAA、NSAccessibility)交给 desktop-a11y-specialist;屏幕阅读器测试(NVDA、JAWS)交给 desktop-a11y-testing-coach;可访问性扫描器/规则引擎交给 a11y-tool-builder;Web 可访问性审计交给 web-accessibility-wizard;文档可访问性审计交给 document-accessibility-wizard。参考文件 references/desktop-accessibility.md 仅在任务涉及该主题时读取。输出契约:只回答问题,按名称引用准则或 API,不追加未被要求的清单。