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 · SyModeless
Property
Type
Default
Description
string
""
The id reported in every signal and used by the group's methods.
string
""
The header text (14 px, medium, elided).
list (alias)
—
Items placed before the icons in the header.
—
—
The content under the header (padded 12 px, clipped).
bool
false
Shows the window; setOpen() / setClose() set it. Setting it to false reports closed and disposes a disposable window.
real
0
The geometry inside the parent.
real
0
The geometry inside the parent.
real
200
The geometry inside the parent.
real
150
The geometry inside the parent.
bool
false
The header drags the window (not while maximised).
bool
false
Grips on the edges and corners (only in "restore").
bool
false
The three header icons; the min / max methods also require them.
bool
false
The three header icons; the min / max methods also require them.
bool
false
The three header icons; the min / max methods also require them.
bool
false
Dragging and resizing stay inside the parent.
bool
false
The folded / full-parent states; mutually exclusive.
bool
false
The folded / full-parent states; mutually exclusive.
real
180
The smallest size a resize allows.
real
44
The smallest size a resize allows.
string
"none"
Entrance: none · fade · pop · any other name = fade + scale.
string
"fast"
x-fast 100 · fast 150 · medium 250 · slow 350 · x-slow 500 ms.
bool
false
The raised window of its group.
var
null
The group (set by the group).
bool
false
Destroyed when open becomes false — setClose() or an assignment (set by create()).
string (read-only)
"restore"
"restore" · "minimum" · "maximum".
real
44
The header height
int (read-only)
—
the resolved duration.
Properties · SyModelessGroup
Property
Type
Default
Description
—
—
The windows declared inside (any other item is placed in the area too).
var (array)
[]
The registered windows (windows() returns it).
int
0
The z given to the last raised window.
Methods
Method
Description
Show with the entrance
set open = false, which hides, emits closed and destroys if disposable (ignored while closed).
Fold (needs minimizable)
fill the parent (needs maximizable)
return to the own geometry.
Raise the window and mark it active; emits activated.
With edge, move the window back inside the parent.
Make (or reopen and raise) a window; returns it.
Change a window by id (updateContent only for created windows).
Change a window by id (updateContent only for created windows).
Change a window by id (updateContent only for created windows).
setClose() on one / every registered window.
setClose() on one / every registered window.
The registered windows
one by name or null.
Put a window on top and mark it active.
Signals
Signal
Arguments
When
detail: { id }
open became false: setClose() (×, group.close, closeAll, your call) or your own open = false.
detail: { id, status }
maximum or minimum changed (icons, methods, assignments); twice when switching directly between the two.
detail: { id, top, left, width, height }
A header drag or a grip resize ended.
—
The window was pressed / dragged / resized and raised.
window
create() made a new window (not when it returned an existing one).
Behavior
Item
Behavior / conditions
A window is a plain Item: x, y, width (200) and height (150) are yours to set; visible follows open.
A window is a plain Item: x, y, width (200) and height (150) are yours to set; visible follows open.
A window is a plain Item: x, y, width (200) and height (150) are yours to set; visible follows open. The header is 44 px; the content below it is padded 12 px and clipped — bind width: parent.width on texts.
A window is a plain Item: x, y, width (200) and height (150) are yours to set; visible follows open.
A window is a plain Item: x, y, width (200) and height (150) are yours to set; visible follows open.
Shows the window; setOpen() / setClose() set it. Setting it to false reports closed and disposes a disposable window.
Raise the window and mark it active; emits activated.
The raised window of its group.
The window was pressed / dragged / resized and raised.
The header drags the window (not while maximised).
Dragging and resizing stay inside the parent.
Grips on the edges and corners (only in "restore").
"restore" · "minimum" · "maximum".
With resizable and windowStatus"restore", 8 px strips on the four edges and 10 px squares on the corners resize the window, never below minWidth × minHeight (180 × 44) and, with edge, never past the parent's right / bottom edge.
With resizable and windowStatus"restore", 8 px strips on the four edges and 10 px squares on the corners resize the window, never below minWidth × minHeight (180 × 44) and, with edge, never past the parent's right / bottom edge.
A header drag or a grip resize ended.
minimum folds the window to its header (the body is hidden, grips are off); maximum sets it to 0, 0 and the parent's size (drag and grips are off).
minimum folds the window to its header (the body is hidden, grips are off); maximum sets it to 0, 0 and the parent's size (drag and grips are off).
The icons: minimise (hidden while maximised; becomes *expand* while minimised), maximise (hidden while minimised; becomes *compress* while maximised), close — each shown only when minimizable / maximizable / closable.
The icons: minimise (hidden while maximised; becomes *expand* while minimised), maximise (hidden while minimised; becomes *compress* while maximised), close — each shown only when minimizable / maximizable / closable.
The icons: minimise (hidden while maximised; becomes *expand* while minimised), maximise (hidden while minimised; becomes *compress* while maximised), close — each shown only when minimizable / maximizable / closable.
setMinimum() / setMaximum() honour those flags; assigning the properties does not.
setMinimum() / setMaximum() honour those flags; assigning the properties does not.
maximum or minimum changed (icons, methods, assignments); twice when switching directly between the two.
setOpen() shows the window and plays the entrance: animation"none" (default) shows it at once; any other name fades it in from 0 opacity, scaling from 95 % ("fade" keeps the scale; "pop" overshoots) over animationSpeed (x-fast 100 · fast 150 · medium 250 · slow 350 · x-slow 500 ms; instant under Theme.reducedMotion).
Entrance: none · fade · pop · any other name = fade + scale.
x-fast 100 · fast 150 · medium 250 · slow 350 · x-slow 500 ms.
setClose() sets open = false: the window hides, emits closed({ id }) and, when it was made by create(), is destroyed.
open became false: setClose() (×, group.close, closeAll, your call) or your own open = false.
Make (or reopen and raise) a window; returns it.
The group (set by the group).
The registered windows (windows() returns it).
windowList / windows() is the current list, find(id) looks one up by name.
windowList / windows() is the current list, find(id) looks one up by name.
The id reported in every signal and used by the group's methods.
The windows declared inside (any other item is placed in the area too).
content given to create / updateContent is put in the window's body: a string becomes a wrapped 14 px text, a Component is instantiated in the window, an Item is re-parented into it; the previous content from create / updateContent is destroyed first. updateContent has no effect on windows declared in QML.
Keyboard
Item
Behavior / conditions
SyModal (a blocking window over the application window), SyDrawer (an edge panel), SyCard (a static framed panel), SyBadge / SyTag (header items).