Type Mappings¶
The types used for properties in .slint design markup each translate to specific types in C++.
The follow table summarizes the entire mapping:
  | 
C++ Type  | 
Note  | 
|---|---|---|
  | 
  | 
|
  | 
  | 
|
  | 
  | 
|
  | 
A reference-counted string type that uses UTF-8 encoding and can be easily converted to a std::string_view or a   | 
|
  | 
||
  | 
||
  | 
||
  | 
  | 
The unit are physical pixels.  | 
  | 
  | 
At run-time, logical lengths are automatically translated to physical pixels using the device pixel ratio.  | 
  | 
  | 
At run-time, durations are always represented as signed 64-bit integers with millisecond precision.  | 
  | 
  | 
The angle in degrees.  | 
  | 
  | 
Relative font size factor that is multiplied with the   | 
structure  | 
A   | 
The order of the data member are in the same as in the slint declaration  | 
anonymous object  | 
A   | 
The fields are in alphabetical order.  | 
enum  | 
An   | 
The values are always converted to CamelCase. The order of the values is the same as in the declaration.  | 
  | 
A struct with   | 
Structures¶
The Slint compiler generates a class with all data members in
the same order for any user-defined, exported struct in the .slint
code.
For example, this struct in a .slint file
export struct MyStruct {
    foo: int,
    bar: string,
}
will generate the following type in C++:
class MyStruct {
public:
    int foo;
    slint::SharedString bar;
};
Enums¶
The Slint compiler generates an enum class with all values in the same order and converted to camel case
for any user-defined, exported enum in the .slint code.
For example, this enum in a .slint file
export enum MyEnum { alpha, beta-gamma, omicron }
will generate the following type in C++:
enum class MyEnum { Alpha, BetaGamma, Omicron };