wxPython Specialist

Guide wxPython desktop app development with sizer layouts and thread-safe events.

387|42|Updated Feb 21, 2026
One-click install
npx skills add https://github.com/Community-Access/accessibility-agents --skill wxpython-specialist
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: wxPython Specialist
Source: https://github.com/Community-Access/accessibility-agents/tree/main/.gemini/extensions/a11y-agents/skills/wxpython-specialist
Command: npx skills add https://github.com/Community-Access/accessibility-agents --skill wxpython-specialist

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill addresses the complexities of developing accessible and cross-platform graphical user interfaces (GUIs) using the wxPython library, ensuring applications are usable by everyone, regardless of their assistive technology.

Core Features & Use Cases

  • Sizer Layouts: Enforces the use of sizers for robust, platform-independent layouts, avoiding absolute positioning.
  • Event Handling: Guides on proper event binding, custom event creation, and thread-safe event posting using wx.CallAfter() and wx.PostEvent().
  • Desktop Accessibility: Focuses on making controls keyboard-accessible, providing proper names, and managing tab order.
  • Screen Reader Compatibility: Details critical event handling patterns (EVT_CHAR_HOOK) to ensure compatibility with screen readers like NVDA and JAWS, especially for interactive controls.
  • Cross-Platform Considerations: Highlights differences in menu bars, button order, and DPI scaling between Windows, macOS, and Linux.

Quick Start

Use the wxPython Specialist skill to create a wx.Frame with a vertical BoxSizer containing a wx.Button labeled 'Submit' and a wx.CheckBox labeled 'Agree to terms', ensuring both are accessible.

Frequently Asked Questions about wxPython Specialist

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I make wxPython GUI controls accessible to screen readers like NVDA and JAWS?

To make wxPython GUI controls accessible to screen readers, handle the `EVT_CHAR_HOOK` event for interactive controls, provide proper names for components, and manage tab order to ensure keyboard accessibility for NVDA and JAWS users.

Why does my wxPython application freeze during long-running tasks?

Your wxPython application freezes because GUI operations are not thread-safe. Use `wx.CallAfter` or `wx.PostEvent` to safely post events and update the GUI from background worker threads without blocking the main event loop.

What is the best way to create cross-platform desktop layouts in wxPython?

The best way to create cross-platform desktop layouts in wxPython is using sizers. Sizers enforce platform-independent layouts by dynamically calculating widget sizes and positions, avoiding the brittleness of absolute positioning across Windows, macOS, and Linux.

Does wxPython handle platform-specific differences like DPI scaling and menu bars?

Yes, wxPython addresses platform-specific differences by managing DPI scaling and adjusting menu bar placements and button order. This ensures a consistent user experience across Windows, macOS, and Linux desktop environments.

Can I use absolute positioning instead of sizers for wxPython desktop applications?

You should avoid absolute positioning for wxPython desktop applications. Enforcing sizer-based layouts is critical for handling robust, platform-independent window resizing and maintaining accessibility standards.

How do I bind custom events in a wxPython desktop application?

To bind custom events in a wxPython desktop application, use proper event binding methods to connect interactions to handlers, and create custom events for specific application needs while ensuring thread-safe event posting with `wx.CallAfter`.