[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FJRY689RGAP6DGHKQ3RBKA":3,"skill-same:01M6FJRY689RGAP6DGHKQ3RBKA":53},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":28,"frontMatter":29,"refName":30,"commitSha":31,"skillDirectory":32,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":35,"ownerHtmlUrl":36,"ownerBlogUrl":6,"ownerDescription":37,"updatedAt":38,"install":39,"resources":52},"01M6FJRY689RGAP6DGHKQ3RBKA","pyside6-ui-engineer",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fvosslab\u002Fvosslab-skills\u002Fpyside6-ui-engineer\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[23,24,25],"ui","engineer","pyside6 ui engineer","2026-11-10 10:12:30",false,"# PySide6 UI Engineer\n\n## Overview\n\nUse this skill to build desktop interfaces that are technically sound and pleasant to use.\nBalance PySide6 implementation details with product-level UI\u002FUX judgment instead of treating visuals as an afterthought.\nUse the official Qt for Python docs as the primary source for APIs, examples, and tool behavior.\n\n## Workflow\n\n1. Classify the surface before coding.\n- 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\u002Fview surface.\n- Identify the primary user goal, the main workflow path, and the states that must be handled: loading, empty, valid, invalid, busy, success, and failure.\n- Read [`references\u002Fofficial_qt_for_python_docs.md`](references\u002Fofficial_qt_for_python_docs.md) when you need the official entry points for installation, module lookup, tutorials, examples, or package tools.\n\n2. Choose a structure that keeps state understandable.\n- Prefer a small composition tree of widgets over a giant window class.\n- Keep business logic separate from widget layout logic.\n- Use signals, slots, and small controller-style helpers to avoid tightly coupling every widget to every other widget.\n- Read [`references\u002Fpyside6_patterns.md`](references\u002Fpyside6_patterns.md) when choosing between common widget, dialog, navigation, threading, and model\u002Fview patterns.\n- Read [`references\u002Fsignals_slots.md`](references\u002Fsignals_slots.md) when designing event flow, widget coordination, worker updates, or signal boundaries.\n\n3. Build the UI from layout and hierarchy first.\n- Prefer layouts over absolute positioning.\n- Make visual hierarchy obvious with spacing, grouping, alignment, and restrained emphasis.\n- Keep forms short, labels explicit, and primary actions visually dominant.\n- Design for resizing from the start; do not assume one fixed window size.\n- Read [`references\u002Fmodel_view.md`](references\u002Fmodel_view.md) before building non-trivial tables, trees, filtering, sorting, or custom cell rendering.\n\n4. Add interaction quality, not just functionality.\n- Give immediate feedback for user actions.\n- Prevent errors before showing errors.\n- Keep destructive actions explicit and reversible when practical.\n- Support keyboard flow, sensible tab order, and accessible names\u002Ftooltips where needed.\n- Read [`references\u002Fui_ux_review.md`](references\u002Fui_ux_review.md) when polishing hierarchy, affordances, validation, empty states, feedback, and accessibility.\n- Read [`references\u002Fdesign_books.md`](references\u002Fdesign_books.md) when you need durable design heuristics, typography guidance, grid\u002Flayout thinking, or design-system perspective beyond immediate PySide6 mechanics.\n- Read the local top-three design resources in this order when they match the problem:\n  [`references\u002FRefactoring_UI.txt`](references\u002FRefactoring_UI.txt) for visual hierarchy, spacing, typography, color, and component polish;\n  [`references\u002FPractical_UI.txt`](references\u002FPractical_UI.txt) for logic-driven accessibility, interaction, and usability rules;\n  [`references\u002FAbout_Face.txt`](references\u002FAbout_Face.txt) for flow, task structure, dialog behavior, and interaction model decisions.\n- Read [`references\u002FAbout_Face.txt`](references\u002FAbout_Face.txt) when the flow, task structure, dialog behavior, or interaction model feels weak rather than merely looking weak.\n\n5. Verify behavior with a UX review pass.\n- Check whether the screen communicates purpose in three seconds.\n- Check whether the main action is obvious.\n- Check whether busy work has been removed from the user's path.\n- Check whether edge states look intentional rather than broken.\n\n## Implementation defaults\n\n- Prefer Qt Widgets for classic desktop productivity tools, forms, settings, inspectors, admin panels, and other dense business UIs.\n- Use Qt Quick only when the product genuinely needs a more fluid, animated, or QML-centric surface and the request clearly points there.\n- Prefer `QMainWindow` for multi-region applications with menus, toolbars, docks, or status bars.\n- Prefer `QDialog` for short focused tasks that need confirmation or cancellation.\n- Prefer `QStackedWidget` or a router\u002Fcontroller pattern for multi-step flows when tabs would expose too much complexity.\n- Prefer Qt's model\u002Fview classes for tables, trees, and large changing datasets.\n- Keep long-running work off the UI thread; use worker objects plus `QThread` or other Qt-safe async patterns.\n- Treat stylesheets as a finishing layer, not a substitute for good widget choice and layout structure.\n- Prefer official Qt tools when the task involves `.ui`, `.qrc`, or project-generation workflows instead of reinventing those steps by hand.\n- Read [`references\u002Fdesigner_ui_workflow.md`](references\u002Fdesigner_ui_workflow.md) when `.ui` files, Qt Designer, or `pyside6-uic` are involved.\n- Read [`references\u002Fdeployment_and_packaging.md`](references\u002Fdeployment_and_packaging.md) when the task includes packaging, shipping, or validating a distributable PySide6 app.\n\n## Quality bar\n\n- Favor clarity over decoration.\n- Favor stable patterns over clever widget tricks.\n- Favor predictable state transitions over hidden side effects.\n- Avoid cramped layouts, unlabeled icons, ambiguous submit buttons, and dialogs that ask questions without context.\n- Do not block the event loop with expensive work, sleeps, or synchronous network\u002Ffile operations in click handlers.\n\n## Output expectations\n\nWhen using this skill, aim to produce:\n- PySide6 code that is organized by responsibility and easy to extend.\n- UI decisions that can be defended in terms of user goals, not personal taste.\n- Explicit handling for validation, error messaging, empty states, and loading states.\n- A short explanation of key UX decisions when the change is non-obvious.\n- References to the relevant official Qt for Python docs when using unfamiliar APIs or package tools.\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fvosslab\u002Fvosslab-skills\u002Fpyside6-ui-engineer",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill pyside6-ui-engineer",{"tool":45,"command":46},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill pyside6-ui-engineer",{"tool":48,"command":49},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill pyside6-ui-engineer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fvosslab\u002Fvosslab-skills\u002Fpyside6-ui-engineer\u002FSKILL.md",true,[],[54,68,78,87,93,100],{"skillNo":55,"name":56,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":57,"categories":58,"keywords":64,"publishedAt":26},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[59],{"categoryNo":60,"categoryName":61,"taxonomyType":62,"taxonomyTypeDesc":63},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[65,66,67],"model","model hierarchy","model hierarchy skill",{"skillNo":69,"name":70,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":74,"publishedAt":26},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[73],{"categoryNo":60,"categoryName":61,"taxonomyType":62,"taxonomyTypeDesc":63},[75,76,77],"MCP","zoom","zoom mcp",{"skillNo":79,"name":80,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":26},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[84,85,86,76],"sdk","zoom apps sdk","apps",{"skillNo":88,"name":89,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":26},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[89],{"skillNo":94,"name":95,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":99,"publishedAt":26},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[98],{"categoryNo":60,"categoryName":61,"taxonomyType":62,"taxonomyTypeDesc":63},[95],{"skillNo":101,"name":102,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":26},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[102]]