Run with --diagnose --json to check your Qt version, import path, fonts, runtime and license. No license token is printed.
The Gallery evaluation app is available now. Paid SDK sales and downloads are coming soon. The installation examples above preview the SDK workflow.
Tested Windows configurations
Native window and example smoke checks cover the versions below. Qt 6.8 is a source minimum, not a promise of tested support for every Qt release. Gallery uses software rendering.
Two complete application examples
Step-by-step captures from the running Windows applications. Play, pause and inspect each state.
Workbench: mark a task done, save changes and see release progress update.Record Manager: preserve a failed save, retry, search and confirm before deleting.
See the components in context
RibbonPanelFormTableTreeTheme
TRY IT YOURSELF
The native Gallery
Browse examples, inspect properties and switch between light and dark themes in a Windows application. The Gallery is for evaluation; commercial SDK access is separate.
The --qml path must contain the Syidax folder. Python uses qml-pure. Run from the unzipped SDK, independently of the source repository.
License is inactive or frozen
Download your QML Core certificate and pass it with --license. Web Core, Chart and Grid certificates do not activate QML. Monthly use ends at expiry. Annual licenses retain only releases covered by their update period.
Qt or plugin mismatch
Check the Qt version and architecture used to build plugins. Do not mix Python Qt bindings. qml-pure removes the compiled plugin ABI dependency.
PDF or icons missing
PDF requires the optional QtQuick.Pdf module. Other Core components remain usable without it. For icon packs and resource paths, read SDK docs/ICON-PACKS.md.
Save failure or corrupt settings
Examples write only to their application-data folder. Check permissions and disk space. Invalid JSON is backed up before reset. A failed save preserves your draft.
Hover or select an item for its QML example and copy button.
Properties
Property
Type
Default
Description
list
[]
The tree model [{ value, label, children, expanded, checked, disabled, icon, … }] (as SyTree). Mirrors the tree's state after every change.
bool
false
Check boxes pick several nodes, shown as tags. Changing it clears the selection.
bool
false
An × that empties the selection while something is selected (not while disabled / readonly).
var
""
Re-apply it with setValue(defaultValue).
string
""
Shown while nothing is selected and nothing typed.
string
"default"
default · error — error forces the error border.
bool
false
Carets on parents; otherwise every level shows.
bool
false
Opens every parent.
bool
false
Guide lines between levels.
bool
false
A spinner instead of the tree.
int
0
Tags shown before the rest fold into "+n"; 0 shows all.
real
0
A fixed row width (0 = natural).
bool
false
The tree sits permanently under the box instead of a popup.
bool
false
Readable, nothing opens; always valid.
list
[]
[{ value, label }] — the pick, or the topmost checked nodes.
string
""
The filter text typed in the box.
string or list (read-only binding)
—
The picked value or, when checkable, the list of values.
read-only
—
The values of selectedItem
read-only
—
the first label.
bool (read-only)
—
The popup is open (always true with appendParent).
SyTree (read-only)
—
The inner tree, for expandNode(), collapseNode(), findNode(), …
bool (read-only)
—
Focus or open popup
bool (read-only)
—
pointer over the box.
string
""
The frame's title, form key, helper text and custom error copy.
string
""
The frame's title, form key, helper text and custom error copy.
string
""
The frame's title, form key, helper text and custom error copy.
string
""
The frame's title, form key, helper text and custom error copy.
string
"medium"
small · medium · large — box height 24 / 32 / 40 px.
bool
false
Dimmed and inert, always valid
bool
false
nothing selected is valueMissing.
read-only
—
Validity: "" · valueMissing · custom; invalid once touched or reported.
read-only
—
Validity: "" · valueMissing · custom; invalid once touched or reported.
read-only
—
Validity: "" · valueMissing · custom; invalid once touched or reported.
real
240
The width when the app sets none.
Methods
Method
Description
Picks from code — a value or a list. Checkable: unchecks all, checks these (subtrees follow). Single: the first found node. Unknown values are ignored. No signal.
Empties the selection and the search text, marks touched, emits changed. Ignored while disabled / readonly.
Opens the popup (marks touched; ignored while disabled, readonly or appendParent)
closes it.
Gives the search box keyboard focus
takes it away and closes the popup.
Whether the status is "", silently
the same and reveals the error line.
"", "valueMissing" or "custom".
Forces the custom status
clears it.
Restores defaultValue (the tree's checks follow) and clears the touched / submitted / custom flags. No signal.
Signals
Signal
Arguments
When
detail: { selectedItem, isValid }
The user picked a node, checked or unchecked one (also through a tag's ×), or cleared. Not for defaultValue, setValue() or reset().
detail: { selectedItem, isValid }
The box gained / lost focus (focus marks the field touched).
detail: { selectedItem, isValid }
The box gained / lost focus (focus marks the field touched).
Behavior
Item
Behavior / conditions
The tree model [{ value, label, children, expanded, checked, disabled, icon, … }] (as SyTree). Mirrors the tree's state after every change.
The picked value or, when checkable, the list of values.
nodes is the SyTree model: a list of { value, label, children, expanded, checked, disabled, icon, … }; value must be unique in the tree. without checkable the rows are clickable: a click selects the node, writes selectedItem = [{ value, label }], shows its label in the box, clears the search text, emits changed and closes the popup.
nodes is the SyTree model: a list of { value, label, children, expanded, checked, disabled, icon, … }; value must be unique in the tree.
nodes is the SyTree model: a list of { value, label, children, expanded, checked, disabled, icon, … }; value must be unique in the tree. disabled: dimmed box, no interaction, no clear ×, always valid.
Carets on parents; otherwise every level shows.
Opens every parent.
Guide lines between levels.
A fixed row width (0 = natural).
Check boxes pick several nodes, shown as tags. Changing it clears the selection.
[{ value, label }] — the pick, or the topmost checked nodes.
The user picked a node, checked or unchecked one (also through a tag's ×), or cleared. Not for defaultValue, setValue() or reset().
Tags shown before the rest fold into "+n"; 0 shows all.
The selection applied at creation and whenever it changes: a value, "a,b" or a list. Re-apply it with setValue(defaultValue).
Picks from code — a value or a list. Checkable: unchecks all, checks these (subtrees follow). Single: the first found node. Unknown values are ignored. No signal.
Restores defaultValue (the tree's checks follow) and clears the touched / submitted / custom flags. No signal.
The filter text typed in the box.
under the box, as wide as it, at most 300 px tall (scrolls beyond), opened by a click on the box, by typing, by ArrowDown or open(); closed by Escape, a press outside, a single-mode pick or close(). With appendParent the tree is drawn inside the field right under the box, framed, and open() / close() do nothing. readonly: readable, nothing opens or types, the tags lose their ×, clearValue() / open() are ignored, always valid. The field counts as touched as soon as the box gains focus (or on a pick, a clear, open()), so a required empty field shows its error line right after it is focused — earlier than the other fields, which wait for a blur.
under the box, as wide as it, at most 300 px tall (scrolls beyond), opened by a click on the box, by typing, by ArrowDown or open(); closed by Escape, a press outside, a single-mode pick or close(). With appendParent the tree is drawn inside the field right under the box, framed, and open() / close() do nothing.
The popup is open (always true with appendParent).
The tree sits permanently under the box instead of a popup.
A spinner instead of the tree.
Readable, nothing opens; always valid.
Empties the selection and the search text, marks touched, emits changed. Ignored while disabled / readonly.
default · error — error forces the error border.
status: "error" forces the error border.
hasFocus is true while the box has focus or the popup is open.
required with nothing selected → valueMissing; setCustomError() → custom; disabled or readonly → "".
required with nothing selected → valueMissing; setCustomError() → custom; disabled or readonly → "".
name keys the field in SyForm.values(): the value, or the list of values when checkable.
name keys the field in SyForm.values(): the value, or the list of values when checkable.
small · medium · large — box height 24 / 32 / 40 px.
The width when the app sets none.
the box is size high (24 / 32 / 40 px) and grows with the tag rows; the width is preferredWidth 240 unless the app sets width.
Keyboard
Item
Behavior / conditions
Keyboard: Tab and Shift+Tab enter and leave the field. Hidden and disabled fields are skipped. Escape closes an open picker before continuing. Textarea uses Tab for focus navigation, including inside a modal; it does not insert indentation.