PyQt5 开发避坑清单

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

属性名冲突、QPainter坐标、offscreen验证,避开所有隐蔽崩溃坑。

一句话选型结论

按资料字段整理

PyQt5 开发避坑清单是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_fdf8cd97/pyqt5-pitfalls
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_fdf8cd97仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791726561
正文体量4.3 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
PyQt5 开发避坑清单当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

4.3 KB
模型实际读到的说明书原文,来自技能仓库

PyQt5 开发避坑清单

适用:所有 PyQt5 桌面项目(凿岩台车智能炮孔系统、政务全媒体工作台等)。
写代码前扫一遍第一节,写完用第四节方法验证。

一、致命坑(会导致程序崩溃/闪退,最优先)

1. 实例属性名不能撞 QWidget/QObject 方法名

# ❌ 会崩:self.height 遮蔽 QWidget.height() 方法
self.height = 5.0

# ✅ 改名
self.tunnel_height = 5.0
  • Qt 内部调用 height() 时拿到浮点数/控件对象 → 直接崩溃(进程退出)
  • 必须避开的属性名:width height size pos rect geometry x y parent font layout children 等 QWidget/QObject 方法名
  • 排查:grep -n "self\.\(height\|width\|size\|pos\|rect\|geometry\)" *.py
  • 真实案例:爆破设计Tab self.height = 5.0 导致窗口一显示就崩(2026-08)

2. QPainter 绘图坐标传 float 会崩

# ❌ 会崩:r 是 float
p.drawLine(cx - r - 10, cy, cx + r + 10, cy)

# ✅ 全部 int()
p.drawLine(int(cx - r - 10), cy, int(cx + r + 10), cy)
  • 适用:drawLine drawEllipse drawRect drawText fillRect 等所有 QPainter 方法
  • 凡坐标表达式里有除法/乘法产生 float 的,一律 int() 包住

3. 崩溃的伪装现象(误导排查)

  • offscreen 下 show() 崩溃 = exit 127 + 无任何输出(stdout 缓冲丢失)
  • 看到 127+无输出 = 代码崩溃,不是命令/环境问题,不要往环境方向排查

二、API 使用坑(报错/样式不对)

4. fixedWidth/fixedHeight 不能当构造参数

# ❌ TypeError: 'fixedWidth' is an unknown keyword argument
QLabel('text', fixedWidth=43)

# ✅ 拆两行
lbl = QLabel('text')
lbl.setFixedWidth(43)
  • 同样适用于:QSpinBox QDoubleSpinBox QComboBox QCheckBox QSlider

5. Import 遗漏

  • 新加 Tab/控件时确认 import 覆盖:QComboBox, QCheckBox, QSlider, QTextEdit, QFileDialog, QGridLayout
  • 漏 import 的报错特征:NameError: name 'XXX' is not defined

6. 布局观感(用户高频反馈点)

  • 参数面板一列太长 → 用 QGridLayout 或 HBox 排两列
  • 表格行少 → 压缩行高 verticalHeader().setDefaultSectionSize(28) + 限高 setMaximumHeight(140)
  • 界面空白多 → 检查 stretch 因子分配;窗口拉伸时用 ll.addLayout(row1, 2) 让区域跟着涨
  • 写 GUI 前先画布局草图:哪块放哪、空白怎么处理,一次到位,避免返工

三、Windows 环境坑

7. 中文用户名 DLL 加载失败(exit code 3221226505)

  • 删除 ctypes.windll.shcore.SetProcessDpiAwareness(2) 这行
  • 或回退 tkinter 平替

8. 启动脚本

@echo off
chcp 65001 >nul
"D:\python\python.exe" "%~dp0your_script.py"
pause

四、验证与排查方法论

offscreen 标准验证(每次改完 GUI 必做,别让用户双击试错)

set QT_QPA_PLATFORM=offscreen && python -c "
from PyQt5.QtWidgets import QApplication
app = QApplication([])
from mymodule import MyWidget
w = MyWidget()
print('OK')
"
  • 只实例化,不 show()(offscreen 下 show 可能崩,不代表真实运行)
  • 验证清单:py_compile 通过 → import 无报错 → MainWindow 创建成功 → 新 Tab 能实例化
  • 临时验证脚本要 sys.path.insert(0, 项目目录),否则 ModuleNotFoundError

崩溃二分定位法(show 就崩时)

  1. offscreen 下 show() 复现(127+无输出=崩)
  2. 用继承子类覆盖 paintEvent 逐步加减内容(实例属性 monkey-patch 对 paintEvent 不生效,必须类级继承)
  3. 从"只画背景"开始,逐段加回 网格→轮廓→炮孔→图例,找到触发段
  4. 锁定后检查:float 坐标?遮蔽属性?越界绘制?

五、写代码前检查清单

  • [ ] 实例属性名没撞 Qt 方法名(height/width/size/pos/rect/geometry...)
  • [ ] 所有 QPainter 坐标 int()
  • [ ] fixedWidth 都拆成 setFixedWidth
  • [ ] import 覆盖新控件
  • [ ] 布局草图先画:无大面积空白、表格压缩、参数两列
  • [ ] 改完 offscreen 标准验证通过

常见问题

5 问
答案由本站依据条目字段整理
PyQt5 开发避坑清单怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_fdf8cd97/pyqt5-pitfalls。安装方式为未标注。装完刷新技能列表或重开客户端。

PyQt5 开发避坑清单支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

PyQt5 开发避坑清单权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

PyQt5 开发避坑清单收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

PyQt5 开发避坑清单用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。