Token导航 LogoToken导航

Agent Skill · 前端设计

qt-layouts(qt 布局)

用于辅助界面设计、视觉规范、排版、配色、布局和交互体验优化。它适合让 Agent 根据产品场景整理页面结构、生成 UI 方案、检查视觉一致性或改进组件层级。使用时需要结合现有品牌、设计系统和用户任务,不应只堆装饰元素;涉及真实页面改动时,应通过截图或浏览器预览检查文本溢出、对齐和响应式表现。

qt-layouts 是前端设计类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为权限未标注;许可证信息还不明确,第三方扫描已通过,按安装量在前端设计类的 10,216 个 Skill 里排第 6,835。

总安装 449周安装 18GitHub Stars 5下载 145核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:qt-layouts(qt 布局)
来源仓库:https://github.com/l3digital-net/claude-code-plugins
仓库路径:skills/qt-layouts
安装命令:
npx skills add https://github.com/l3digital-net/claude-code-plugins --skill qt-layouts
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/l3digital-net/claude-code-plugins --skill qt-layouts

这个 Skill 是做什么的

前端设计类 Skill 关注页面结构、视觉规范和组件写法,输出通常是可运行的界面代码。

qt-layouts 用于辅助界面设计、视觉规范与布局优化,适合让 Agent 整理页面结构或改进组件层级。可生成 UI 方案、检查响应式表现或调整文本对齐,提升用户体验一致性。通过 npx skills add 命令从 GitHub 安装,需结合品牌指南与设计系统使用。

建议通过截图或浏览器预览验证改动效果,避免仅依赖静态描述。涉及真实页面修改时应评估对现有样式的影响,防止破坏布局稳定性。

来源仓库内路径:skills/qt-layouts

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/l3digital-net/claude-code-plugins --skill qt-l…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    权限没有明确标注,第一次使用时只给一个无关紧要的任务,观察它到底读了哪些文件和网络。

常见问题

6 条

qt-layouts 怎么安装?

在终端执行 npx skills add https://github.com/l3digital-net/claude-code-plugins --skill qt-layouts。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

qt-layouts 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

qt-layouts 需要什么权限?

权限级别没有明确标注。第一次使用时建议只给无关紧要的任务,观察它实际读写了哪些内容。

qt-layouts 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

qt-layouts 用的人多吗?

公开数据是累计安装 449 次,近一周安装 18 次,下载 145 次,GitHub 5 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

qt-layouts 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理前端设计类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

前端设计类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
frontend-design

前端设计 · Codex、Claude

8,823,360126,072只读MIT通过
vercel-composition-patterns

Vercel 组合模式 · Codex、Claude

3,858,81625,893需要联网MIT通过
vercel-react-native-skills

Vercel React native skills 前端 · Codex、Claude

2,468,66425,878只读MIT通过
adapt

adapt 搜索 · Codex、Claude

2,027,04023,125操作浏览器未明确通过
bolder

bolder 分析 · Codex、Claude

2,004,28823,130只读未明确通过
qt-layouts

qt 布局 · 本页

4495权限未标注未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Qt Layout Managers

Layout Hierarchy

Qt lays out widgets using layout objects attached to containers. Never call setGeometry() manually — use layouts.

QWidget (parent)
└── QVBoxLayout (attached via setLayout or constructor arg)
    ├── QLabel
    ├── QHBoxLayout (nested)
    │   ├── QPushButton
    │   └── QPushButton
    └── QTextEdit

Core Layout Types

LayoutUse case
QVBoxLayoutStack items vertically
QHBoxLayoutStack items horizontally
QGridLayoutRow/column grid
QFormLayoutLabel + field pairs
QStackedLayoutMultiple pages, one visible

Basic Usage

from PySide6.QtWidgets import (
    QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QSizePolicy
)

class MyWidget(QWidget):
    def __init__(self) -> None:
        super().__init__()
        # Pass widget as parent to layout — attaches layout automatically
        main_layout = QVBoxLayout(self)
        main_layout.setContentsMargins(12, 12, 12, 12)
        main_layout.setSpacing(8)

        label = QLabel("Hello")
        main_layout.addWidget(label)

        # Nested horizontal row
        button_row = QHBoxLayout()
        button_row.addWidget(QPushButton("OK"))
        button_row.addWidget(QPushButton("Cancel"))
        main_layout.addLayout(button_row)

Pass the parent widget to the layout constructor (QVBoxLayout(self)) — this is cleaner than calling self.setLayout(layout) separately, and prevents forgetting to attach the layout.

Stretch and Size Policy

Stretch factors distribute extra space when the window resizes:

layout.addWidget(sidebar, stretch=1)    # gets 1/4 of extra space
layout.addWidget(main_area, stretch=3)  # gets 3/4 of extra space

Size policy controls how individual widgets resize:

# Expand to fill available horizontal space
widget.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)

# Fixed size — never grows or shrinks
widget.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
widget.setFixedSize(200, 40)

Common policies: Fixed, Minimum, Maximum, Preferred, Expanding, MinimumExpanding.

Spacers:

from PySide6.QtWidgets import QSpacerItem, QSizePolicy

# Push buttons to the right
layout.addStretch()                          # flexible spacer
layout.addSpacing(16)                        # fixed-size gap
layout.addItem(QSpacerItem(                  # explicit spacer
    40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum
))

QGridLayout

grid = QGridLayout(self)
grid.addWidget(QLabel("Name:"),    0, 0)   # row, col
grid.addWidget(name_edit,          0, 1)
grid.addWidget(QLabel("Email:"),   1, 0)
grid.addWidget(email_edit,         1, 1)
grid.addWidget(submit_btn,         2, 0, 1, 2)  # row, col, rowspan, colspan

# Column stretch — second column takes all extra space
grid.setColumnStretch(0, 0)
grid.setColumnStretch(1, 1)

QFormLayout

Use for settings dialogs and data entry forms — automatically handles label alignment:

from PySide6.QtWidgets import QFormLayout

form = QFormLayout(self)
form.addRow("Username:", QLineEdit())
form.addRow("Password:", QLineEdit())
form.addRow("", QPushButton("Login"))   # empty label for button row

QSplitter

from PySide6.QtWidgets import QSplitter
from PySide6.QtCore import Qt

splitter = QSplitter(Qt.Orientation.Horizontal)
splitter.addWidget(sidebar)
splitter.addWidget(main_content)
splitter.setSizes([200, 600])           # initial pixel widths
splitter.setStretchFactor(0, 0)         # sidebar: don't stretch
splitter.setStretchFactor(1, 1)         # main: takes all extra space

# Persist splitter state
settings.setValue("splitter", splitter.saveState())
splitter.restoreState(settings.value("splitter"))

Centering a Widget in Its Parent

# Via layout
layout = QVBoxLayout(self)
layout.addStretch()
layout.addWidget(target_widget, alignment=Qt.AlignmentFlag.AlignHCenter)
layout.addStretch()

Debugging Layout Issues

Widget appears but is zero-size:

  • Set a size hint: widget.setMinimumSize(100, 40) or override sizeHint()
  • Check that the parent layout is actually attached (self.layout() returns non-None)

Widget not visible at all:

  • Confirm show() was called (or parent is visible)
  • Check isHidden() and isVisible()
  • Ensure no setFixedSize(0, 0) or zero margins collapsing the widget

Layout ignoring size changes:

  • Call layout.invalidate() after programmatic geometry changes
  • Verify size policy is not Fixed when you want expansion

Margins and spacing defaults:

  • Default content margins: 9px on all sides (varies by style)
  • Reset to zero: layout.setContentsMargins(0, 0, 0, 0) and layout.setSpacing(0)

平台分布

Codex

35.13%
按下载量换算51

Claude

28.28%
按下载量换算41

Cursor

19.65%
按下载量换算28

Gemini CLI

9.88%
按下载量换算14

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

权限未标注

当前来源未能明确判断权限范围,默认进入异常复核队列。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills