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 · SyCodeViewer
Property
Type
Default
Description
string
"plaintext"
The tokeniser for the script (unless the script sets its own language).
bool
false
The gutter in the script (inherited).
bool
true
The copy button in the script (inherited).
bool
false
Wrap long lines instead of horizontal scrolling (inherited).
real
0
Caps the script's height in px and scrolls the rest; 0 = unbounded (inherited).
string
""
"3,5-7" — 1-based lines and ranges to tint (inherited).
bool
true
Shows the *SOURCE* bar when both parts exist.
bool
true
The initial value of expanded.
bool
defaultExpanded
Whether the script is shown under the bar; ignored when there is no bar.
string
"SOURCE"
The bar's text.
var
null
The collected SyCodeRender / SyCodeScript.
var
null
The collected SyCodeRender / SyCodeScript.
bool (read-only)
—
Whether each part was found.
bool (read-only)
—
Whether each part was found.
string (read-only)
—
The render's source ("" without a render).
var (read-only)
—
highlightLines parsed to a sorted array of line numbers.
bool (read-only)
—
Whether the bar is drawn
bool (read-only)
—
whether the script is currently visible.
string
"prop"
"user" while expandedChanged handlers run for a user toggle, else "prop".
Properties · SyCodeRender
Property
Type
Default
Description
string
""
The code text the paired script shows when its own code is empty.
var
null
The viewer (set by the viewer).
—
—
The live items, drawn on a tinted stage with 12 px of padding.
Properties · SyCodeScript
Property
Type
Default
Description
string
""
The text to show; "" inside a viewer = the render's source.
string
""
The tokeniser id or alias; "" = the viewer's, else plain text.
var
undefined
undefined = inherit from the viewer; standalone defaults false · true · false · 0 · "".
var
undefined
undefined = inherit from the viewer; standalone defaults false · true · false · 0 · "".
var
undefined
undefined = inherit from the viewer; standalone defaults false · true · false · 0 · "".
var
undefined
undefined = inherit from the viewer; standalone defaults false · true · false · 0 · "".
var
undefined
undefined = inherit from the viewer; standalone defaults false · true · false · 0 · "".
var
null
The viewer (set by the viewer).
string (read-only)
—
What is actually shown and tokenised.
string (read-only)
—
What is actually shown and tokenised.
read-only
—
The effective settings after inheritance.
read-only
—
The effective settings after inheritance.
read-only
—
The effective settings after inheritance.
read-only
—
The effective settings after inheritance.
read-only
—
The effective settings after inheritance.
read-only
—
The token lines
read-only
—
their number
read-only
—
the highlighted line numbers.
real (read-only)
21
The row height
real (read-only)
—
the gutter width (0 without line numbers).
Methods
Method
Description
Flips expanded as a user action.
Sets expanded as a user action (lastExpandSource = "user").
Re-scans the children for the render and the script (called automatically).
Copies resolvedCode to the clipboard and emits copied.
Signals
Signal
Arguments
When
detail: { hasRender, hasScript }
Once, after completion and the first collection of the parts.
—
expanded changed by the user (lastExpandSource === "user") or by a binding / assignment ("prop").
—
The properties' own signals.
—
The properties' own signals.
detail: { line }
A line number was clicked (needs showLineNumbers); 1-based.
detail: { code, language }
The copy button or copy() put the text on the clipboard.
—
The code property changed.
Behavior
Item
Behavior / conditions
The viewer's children are collected at completion and whenever they change: an item with codeRender === true becomes render and is parented into the top area; one with codeScript === true becomes script and goes into the bottom area; each gets owner set to the viewer.
The viewer's children are collected at completion and whenever they change: an item with codeRender === true becomes render and is parented into the top area; one with codeScript === true becomes script and goes into the bottom area; each gets owner set to the viewer.
The viewer's children are collected at completion and whenever they change: an item with codeRender === true becomes render and is parented into the top area; one with codeScript === true becomes script and goes into the bottom area; each gets owner set to the viewer.
The viewer's children are collected at completion and whenever they change: an item with codeRender === true becomes render and is parented into the top area; one with codeScript === true becomes script and goes into the bottom area; each gets owner set to the viewer.
The viewer (set by the viewer).
Once, after completion and the first collection of the parts.
SyCodeScript.resolvedCode is its own code when non-empty, otherwise the owner render's source, otherwise "". It — or copy() — puts resolvedCode on the system clipboard through a hidden text edit and emits copied.
The text to show; "" inside a viewer = the render's source.
The code text the paired script shows when its own code is empty.
resolvedLanguage is its own language, else the viewer's, else "plaintext".
The tokeniser id or alias; "" = the viewer's, else plain text.
The bar's text.
Shows the *SOURCE* bar when both parts exist.
Flips expanded as a user action.
Whether the script is shown under the bar; ignored when there is no bar.
The initial value of expanded.
Sets expanded as a user action (lastExpandSource = "user").
"user" while expandedChanged handlers run for a user toggle, else "prop".
expanded changed by the user (lastExpandSource === "user") or by a binding / assignment ("prop").
Lines listed in highlightLines — "3,5-7,12", 1-based, inclusive ranges, any order — get a tinted background and a 2 px brand-coloured left edge.
With showLineNumbers a right-aligned gutter (at least 28 px, wider for long files) shows the numbers; clicking one emits lineClick.
A line number was clicked (needs showLineNumbers); 1-based.
Long lines scroll horizontally unless wrap is on; with scriptHeight > 0 the panel is capped at that height and scrolls vertically.
Long lines scroll horizontally unless wrap is on; with scriptHeight > 0 the panel is capped at that height and scrolls vertically. SyCodeRender is as tall as its children plus 12 px of padding on each side and has a tinted stage background; SyCodeScript standalone is 480 wide unless its parent sets a width, and as tall as its lines (plus 56 px of padding) or scriptHeight.
Copies resolvedCode to the clipboard and emits copied.
The copy button or copy() put the text on the clipboard.
The viewer has implicitWidth 480 and an implicitHeight of render + bar + script (when shown) + 2 px of border; the render and the script take the viewer's inner width.
The viewer has implicitWidth 480 and an implicitHeight of render + bar + script (when shown) + 2 px of border; the render and the script take the viewer's inner width.
Keyboard
Item
Behavior / conditions
SyButton (the copy button), SyIcon / Icons.editorCopy, Theme.editor (the token palette).