Globals
Declare a global singleton with global Name { /* .. properties or callbacks .. */ }
to
make properties and callbacks available throughout the entire project. Access them using Name.property
.
For example, this can be useful for a common color palette:
global Palette { in-out property<color> primary: blue; in-out property<color> secondary: green;}
export component Example inherits Rectangle { background: Palette.primary; border-color: Palette.secondary; border-width: 2px;}
slint
Export a global to make it accessible from other files (see Modules). Export a global from the file also exporting the main application component to make it visible to native code in the business logic.
export global Logic { in-out property <int> the-value; pure callback magic-operation(int) -> int;}// ...
slint
Usage from Rust
slint::slint!{export global Logic { in-out property <int> the-value; pure callback magic-operation(int) -> int;}
export component App inherits Window { // ...}}
fn main() { let app = App::new(); app.global::<Logic>().on_magic_operation(|value| { eprintln!("magic operation input: {}", value); value * 2 }); app.global::<Logic>().set_the_value(42); // ...}
rust
Usage from C++
#include "app.h"
fn main() { auto app = App::create(); app->global<Logic>().on_magic_operation([](int value) -> int { return value * 2; }); app->global<Logic>().set_the_value(42); // ...}
C++
Usage from JavaScript
let slint = require("slint-ui");let file = slint.loadFile("app.slint");let app = new file.App();app.Logic.magic_operation = (value) => { return value * 2;};app.Logic.the_value = 42;// ...
js
It’s possible to re-expose a callback or properties from a global using the two way binding syntax.
global Logic { in-out property <int> the-value; pure callback magic-operation(int) -> int;}
component SomeComponent inherits Text { // use the global in any component text: "The magic value is:" + Logic.magic-operation(42);}
export component MainWindow inherits Window { // re-expose the global properties such that the native code // can access or modify them in-out property the-value <=> Logic.the-value; pure callback magic-operation <=> Logic.magic-operation;
SomeComponent {}}
slint
© 2025 SixtyFPS GmbH