L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Design et création · SKILL.md

widget-development

widget-development

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

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation 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 enregistrées