算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
widget-development【设计与创意】Build, preview, test, and load Orange widgets and Canvas workflows.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
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.
references/widget-framework.md, then references/gui-controls.md. Use OWWidget, new-style Inputs/Outputs, Setting/ContextSetting, Msg message classes, and a WidgetPreview fence.references/gui-controls.md, then the context/settings section in references/widget-framework.md.references/canvas-and-workflows.md and references/troubleshooting.md. Prefer WidgetPreview for interactive/manual checks and Orange.widgets.tests.base.WidgetTest for assertions.references/canvas-and-workflows.md. Use WidgetsScheme.load_from(..., registry=reg) or the non-interactive Canvas runner; pause signal propagation while loading test workflows.references/canvas-and-workflows.md, then run the bundled scripts/create_widget_catalog.py against an installed Orange package.references/troubleshooting.md first; it covers discovery, missing metadata/I/O, stored settings, context migrations, GUI binding, Qt platform/offscreen issues, preview exits, background cancellation, SQL credential errors, and workflow-loading failures.OWBaseSql, SQL input decorators, credentials) as optional cross-cutting widget support. Do not require live PostgreSQL/MSSQL services for the minimum GUI/framework workflow.scripts/create_widget_catalog.py; the references below distill the needed framework behavior.QT_QPA_PLATFORM=offscreen before widget previews, widget tests, workflow loads, or catalog icon rendering.ConcurrentWidgetMixin, TaskState.is_interruption_requested()) and call shutdown() from onDeleteWidget().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.