> pyside6-ui-engineer
Design, implement, refactor, and review PySide6 desktop applications with strong widget architecture, signal-slot design, state flow, and expert UI/UX logic. Use when building or fixing Qt for Python windows, dialogs, forms, navigation shells, model-view tables, theming, validation, accessibility, or interaction polish in Python GUI code.
curl "https://skillshub.wtf/vosslab/vosslab-skills/pyside6-ui-engineer?format=md"PySide6 UI Engineer
Overview
Use this skill to build desktop interfaces that are technically sound and pleasant to use. Balance PySide6 implementation details with product-level UI/UX judgment instead of treating visuals as an afterthought. Use the official Qt for Python docs as the primary source for APIs, examples, and tool behavior.
Workflow
- Classify the surface before coding.
- Decide whether the work belongs in Qt Widgets or Qt Quick first, then decide whether it should use a
QMainWindow,QWidget,QDialog, wizard, dock layout, or model/view surface. - Identify the primary user goal, the main workflow path, and the states that must be handled: loading, empty, valid, invalid, busy, success, and failure.
- Read
references/official_qt_for_python_docs.mdwhen you need the official entry points for installation, module lookup, tutorials, examples, or package tools.
- Choose a structure that keeps state understandable.
- Prefer a small composition tree of widgets over a giant window class.
- Keep business logic separate from widget layout logic.
- Use signals, slots, and small controller-style helpers to avoid tightly coupling every widget to every other widget.
- Read
references/pyside6_patterns.mdwhen choosing between common widget, dialog, navigation, threading, and model/view patterns. - Read
references/signals_slots.mdwhen designing event flow, widget coordination, worker updates, or signal boundaries.
- Build the UI from layout and hierarchy first.
- Prefer layouts over absolute positioning.
- Make visual hierarchy obvious with spacing, grouping, alignment, and restrained emphasis.
- Keep forms short, labels explicit, and primary actions visually dominant.
- Design for resizing from the start; do not assume one fixed window size.
- Read
references/model_view.mdbefore building non-trivial tables, trees, filtering, sorting, or custom cell rendering.
- Add interaction quality, not just functionality.
- Give immediate feedback for user actions.
- Prevent errors before showing errors.
- Keep destructive actions explicit and reversible when practical.
- Support keyboard flow, sensible tab order, and accessible names/tooltips where needed.
- Read
references/ui_ux_review.mdwhen polishing hierarchy, affordances, validation, empty states, feedback, and accessibility. - Read
references/design_books.mdwhen you need durable design heuristics, typography guidance, grid/layout thinking, or design-system perspective beyond immediate PySide6 mechanics. - Read the local top-three design resources in this order when they match the problem:
references/Refactoring_UI.txtfor visual hierarchy, spacing, typography, color, and component polish;references/Practical_UI.txtfor logic-driven accessibility, interaction, and usability rules;references/About_Face.txtfor flow, task structure, dialog behavior, and interaction model decisions. - Read
references/About_Face.txtwhen the flow, task structure, dialog behavior, or interaction model feels weak rather than merely looking weak.
- Verify behavior with a UX review pass.
- Check whether the screen communicates purpose in three seconds.
- Check whether the main action is obvious.
- Check whether busy work has been removed from the user's path.
- Check whether edge states look intentional rather than broken.
Implementation defaults
- Prefer Qt Widgets for classic desktop productivity tools, forms, settings, inspectors, admin panels, and other dense business UIs.
- Use Qt Quick only when the product genuinely needs a more fluid, animated, or QML-centric surface and the request clearly points there.
- Prefer
QMainWindowfor multi-region applications with menus, toolbars, docks, or status bars. - Prefer
QDialogfor short focused tasks that need confirmation or cancellation. - Prefer
QStackedWidgetor a router/controller pattern for multi-step flows when tabs would expose too much complexity. - Prefer Qt's model/view classes for tables, trees, and large changing datasets.
- Keep long-running work off the UI thread; use worker objects plus
QThreador other Qt-safe async patterns. - Treat stylesheets as a finishing layer, not a substitute for good widget choice and layout structure.
- Prefer official Qt tools when the task involves
.ui,.qrc, or project-generation workflows instead of reinventing those steps by hand. - Read
references/designer_ui_workflow.mdwhen.uifiles, Qt Designer, orpyside6-uicare involved. - Read
references/deployment_and_packaging.mdwhen the task includes packaging, shipping, or validating a distributable PySide6 app.
Quality bar
- Favor clarity over decoration.
- Favor stable patterns over clever widget tricks.
- Favor predictable state transitions over hidden side effects.
- Avoid cramped layouts, unlabeled icons, ambiguous submit buttons, and dialogs that ask questions without context.
- Do not block the event loop with expensive work, sleeps, or synchronous network/file operations in click handlers.
Output expectations
When using this skill, aim to produce:
- PySide6 code that is organized by responsibility and easy to extend.
- UI decisions that can be defended in terms of user goals, not personal taste.
- Explicit handling for validation, error messaging, empty states, and loading states.
- A short explanation of key UX decisions when the change is non-obvious.
- References to the relevant official Qt for Python docs when using unfamiliar APIs or package tools.
> related_skills --same-repo
> webwork-writer
Create, edit, and lint WeBWorK PG/PGML questions following docs/webwork guidance, HTML whitelist constraints, and renderer-based lint checks. Use for tasks like authoring new PGML problems, adjusting randomization or grading, fixing PGML rendering issues, and running renderer API linting.
> unit-test-starter
Generate thorough Python 3 pytest unit tests across a repo by scanning every *.py file and each function, writing one test module per source file while skipping IO/network behavior and documenting gaps.
> skill-writing-guide
Guide for authoring Agent Skills (SKILL.md). Covers the open standard format, required frontmatter, directory layout, progressive disclosure, description writing, and best practices. Use when creating a new skill, improving an existing skill, or learning how skills work.
> readme-fix
Standardize README.md to match repo conventions. Brief purpose, quick start, and links to docs/. Keep content verifiable, concise, and ASCII. Use when README.md drifted or is missing key pointers.