La interfaz está localizada; las descripciones y documentos de las Skills se traducen automáticamente con IA a su idioma. El código, los comandos, rutas y términos técnicos se mantienen en el original, y prevalece el documento del autor.
Explorar Skills
Diseño y creatividad · SKILL.md

widget-development

widget-development

Build, preview, test, and load Orange widgets and Canvas workflows.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentación de la Skill

GitHub

name: widget-development description: "Build, preview, test, and load Orange widgets and Canvas workflows." metadata: disco-role: operating disable-model-invocation: true license: NOASSERTION

Orange3 Widget Development

Use this sub-skill when the task is about Orange's widget framework rather than a specific data-mining method: authoring an OWWidget, wiring GUI controls and settings, previewing or unit-testing widgets, loading .ows Canvas workflows, debugging widget discovery, or generating a widget catalog from the installed Orange package.

Route by task

Operating rules

  1. Keep widget-development guidance framework-focused. Do not explain package-specific data, model, projection, visualization, or evaluation semantics except when they demonstrate the widget framework.
  2. Treat SQL widget bases (OWBaseSql, SQL input decorators, credentials) as optional cross-cutting widget support. Do not require live PostgreSQL/MSSQL services for the minimum GUI/framework workflow.
  3. Do not point future agents to source-checkout scripts or docs. Use the bundled references and bundled scripts/create_widget_catalog.py; the references below distill the needed framework behavior.
  4. In headless Linux/CI, set QT_QPA_PLATFORM=offscreen before widget previews, widget tests, workflow loads, or catalog icon rendering.
  5. For long-running widgets, use cooperative cancellation (ConcurrentWidgetMixin, TaskState.is_interruption_requested()) and call shutdown() from onDeleteWidget().

Evidence snapshot

Distilled and live-checked against Orange3 3.41.0.dev with Qt/PyQt available. Key verified API facts include:

  • OWWidget(*args, captionTitle=None, **kwargs)
  • Input(name, type, ..., multiple=False, default=False, explicit=False, auto_summary=None, closing_sentinel=None)
  • Output(name, type, ..., default=False, explicit=False, dynamic=True, auto_summary=None)
  • WidgetPreview(widget_cls).run(input_data=None, *, no_exec=False, no_exit=False, **kwargs)
  • DomainContextHandler(*, match_values=0, first_match=True, **kwargs)
  • WidgetTest.create_widget(cls, stored_settings=None, reset_default_settings=True, **kwargs)
  • ConcurrentWidgetMixin.start(task, *args, **kwargs), cancel(), and shutdown()

Representative source evidence was distilled from Orange widget/canvas framework modules, development docs, GUI/settings/testing helpers, workflow tests, SQL widget helpers, and the repo-maintained widget-catalog script. The runtime guidance here is self-contained and does not require those source files to be present.

Skills guardadas