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.
After the exit animation of every close; event is "ok", "cancel" or "close".
—
open changed (before the animation).
—
The entrance animation finished (phase is "open").
—
The exit animation finished and the sheet is hidden; just before closed.
—
A click on the mask outside the panel — also when maskClosable is off.
—
Escape on the sheet (the modal then closes when closable).
Behavior
Item
Behavior / conditions
The modal item is visible: false and occupies nothing in its parent.
Shows / hides the sheet; setOpen() and the close methods set it.
When open becomes true, a full-window sheet (a child of the window's overlay, z 100) is shown with a mask (mask, bound to !maskless; colour maskColor) and the panel.
No mask: the application behind stays visible and clickable.
The mask colour.
A click on the mask outside the panel — also when maskClosable is off.
open = true; re-places the window; plays the entrance.
setOpen() and open = true are the same; setClose(value) / setCancel(value) / setOk(value) store the event and value and set open = false.
setOpen() and open = true are the same; setClose(value) / setCancel(value) / setOk(value) store the event and value and set open = false.
setOpen() and open = true are the same; setClose(value) / setCancel(value) / setOk(value) store the event and value and set open = false.
Shows the × and lets Escape close (both event "close"); without it Escape is ignored.
A click on the mask closes with "close".
The exit animation finished and the sheet is hidden; just before closed.
After the exit animation of every close; event is "ok", "cancel" or "close".
animation names the entrance and exit: "none" (default), "fade", "fade-scale" (from 95 %), "zoom" (from 80 %), "pop" (from 90 % with an overshoot), "slide-top" / "slide-bottom" / "slide-left" / "slide-right" (24 px, slideDistance), "slide-fade-…" (slide plus fade), "slide" / "slide-fade" / "reveal" (from slideSide, default "top").
animation names the entrance and exit: "none" (default), "fade", "fade-scale" (from 95 %), "zoom" (from 80 %), "pop" (from 90 % with an overshoot), "slide-top" / "slide-bottom" / "slide-left" / "slide-right" (24 px, slideDistance), "slide-fade-…" (slide plus fade), "slide" / "slide-fade" / "reveal" (from slideSide, default "top").
x-fast 100 · fast 150 · medium 250 · slow 350 · x-slow 500 ms.
phase reports "closed" → "opening" → "open" → "closing"; entered() fires at the end of the entrance.
The entrance animation finished (phase is "open").
The panel is panelW × panelH at panelX, panelY on the sheet: windowWidth / windowHeight when > 0, else the content size (contentWidth = body + 24 px, at least 200; contentHeight = 44 px header + the body plus 24 px (at least 50 px) + 44 px footer when shown); windowX / windowY when ≥ 0, else centred.
The panel is panelW × panelH at panelX, panelY on the sheet: windowWidth / windowHeight when > 0, else the content size (contentWidth = body + 24 px, at least 200; contentHeight = 44 px header + the body plus 24 px (at least 50 px) + 44 px footer when shown); windowX / windowY when ≥ 0, else centred.
The panel is panelW × panelH at panelX, panelY on the sheet: windowWidth / windowHeight when > 0, else the content size (contentWidth = body + 24 px, at least 200; contentHeight = 44 px header + the body plus 24 px (at least 50 px) + 44 px footer when shown); windowX / windowY when ≥ 0, else centred.
The panel is panelW × panelH at panelX, panelY on the sheet: windowWidth / windowHeight when > 0, else the content size (contentWidth = body + 24 px, at least 200; contentHeight = 44 px header + the body plus 24 px (at least 50 px) + 44 px footer when shown); windowX / windowY when ≥ 0, else centred.
The panel is panelW × panelH at panelX, panelY on the sheet: windowWidth / windowHeight when > 0, else the content size (contentWidth = body + 24 px, at least 200; contentHeight = 44 px header + the body plus 24 px (at least 50 px) + 44 px footer when shown); windowX / windowY when ≥ 0, else centred. The body is clipped and padded 12 px; give wide content an explicit width or set windowWidth.
The panel is panelW × panelH at panelX, panelY on the sheet: windowWidth / windowHeight when > 0, else the content size (contentWidth = body + 24 px, at least 200; contentHeight = 44 px header + the body plus 24 px (at least 50 px) + 44 px footer when shown); windowX / windowY when ≥ 0, else centred.
The panel is panelW × panelH at panelX, panelY on the sheet: windowWidth / windowHeight when > 0, else the content size (contentWidth = body + 24 px, at least 200; contentHeight = 44 px header + the body plus 24 px (at least 50 px) + 44 px footer when shown); windowX / windowY when ≥ 0, else centred.
The panel is panelW × panelH at panelX, panelY on the sheet: windowWidth / windowHeight when > 0, else the content size (contentWidth = body + 24 px, at least 200; contentHeight = 44 px header + the body plus 24 px (at least 50 px) + 44 px footer when shown); windowX / windowY when ≥ 0, else centred.
The panel is panelW × panelH at panelX, panelY on the sheet: windowWidth / windowHeight when > 0, else the content size (contentWidth = body + 24 px, at least 200; contentHeight = 44 px header + the body plus 24 px (at least 50 px) + 44 px footer when shown); windowX / windowY when ≥ 0, else centred.
The panel is panelW × panelH at panelX, panelY on the sheet: windowWidth / windowHeight when > 0, else the content size (contentWidth = body + 24 px, at least 200; contentHeight = 44 px header + the body plus 24 px (at least 50 px) + 44 px footer when shown); windowX / windowY when ≥ 0, else centred.
Re-binds the geometry to windowX / windowY / windowWidth / windowHeight.
"dialog" (fixed, centred) or "modal" (drag, resize, maximise).
The maximise icon and setMaximum() ("modal" only).
The header is 44 px: title (16 px, medium, elided), then the header items, then the maximise icon and the ×.
The footer is 44 px with the footer items right-aligned; when footer is empty, the default *Cancel* (cancelText, default "Cancel") and *Ok* (okText, default "Ok", primary) buttons are shown; hideFooter removes the footer entirely.
The footer is 44 px with the footer items right-aligned; when footer is empty, the default *Cancel* (cancelText, default "Cancel") and *Ok* (okText, default "Ok", primary) buttons are shown; hideFooter removes the footer entirely.
The footer is 44 px with the footer items right-aligned; when footer is empty, the default *Cancel* (cancelText, default "Cancel") and *Ok* (okText, default "Ok", primary) buttons are shown; hideFooter removes the footer entirely.
Removes the footer row.
Keyboard
Item
Behavior / conditions
SyDrawer (a panel at a window edge on the same sheet base), SyModeless (floating windows inside an item), SyPopconfirm (an anchored question), SyButton (the footer).