smithery.ai

qt-testing

Capture and visually inspect Qt GUI widgets using screenshots.

First seen Mar 24, 2026

Installation

$ npx skills add https://smithery.ai

Summary

  • Capture and visually inspect Qt GUI widgets using screenshots.
  • Use when asked to verify GUI rendering, test widget appearance, check layouts, or visually inspect any PySide6/Qt component.
  • Enables Claude to "see" Qt interfaces by capturing offscreen screenshots and analyzing them with vision.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,310 B
  • docs SUMMARY.md 310 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.md

Qt GUI Testing

Capture screenshots of Qt widgets for visual inspection without displaying windows on screen.

Quick Start

# Capture any widget
from scripts.qt_capture import capture_widget
path = capture_widget(my_widget, "description_here")
# Then read the screenshot with the Read tool

Core Script

Run scripts/qtcapture.py or import capturewidget from it:

# Standalone test
uv run --with PySide6 python .claude/skills/qt-testing/scripts/qt_capture.py

Output Location

All screenshots save to: scratch/.qt-screenshots/

Naming: {YYYY-MM-DD.HH-MM-SS}_{description}.png

Workflow

  1. Create/obtain the widget to test
  2. Call capture_widget(widget, "description")
  3. Read the saved screenshot with the Read tool
  4. Analyze with vision to verify correctness

Interaction Pattern

To interact with widgets (click buttons, etc.):

# Find widget at coordinates (from vision analysis)
target = widget.childAt(x, y)

# Trigger it directly (not mouse events)
if hasattr(target, 'click'):
    target.click()
    QApplication.processEvents()

# Capture result
capture_widget(widget, "after_click")

Example: Test a Dialog

import sys
from PySide6.QtWidgets import QApplication
from sleap.gui.learning.dialog import TrainingEditorDialog

# Add skill scripts to path
sys.path.insert(0, ".claude/skills/qt-testing")
from scripts.qt_capture import capture_widget, init_qt

app = init_qt()
dialog = TrainingEditorDialog()
path = capture_widget(dialog, "training_dialog")
dialog.close()
print(f"Inspect: {path}")

Key Points

  • Uses Qt.WA_DontShowOnScreen - no window popup
  • Renders identically to on-screen display (verified)
  • Call processEvents() after interactions before capture
  • Use childAt(x, y) to map vision coordinates to widgets
  • Direct method calls (.click()) work; simulated mouse events don't