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 };