KitRating
Score selection with an explicit clear action.

Supply scores: [ChoiceRow], generation and active-token from the rating controller. Handle choose(token, generation) separately from clear-requested.
The presentation composes KitSegmentedControl and a clear action. No rating remains an explicit domain state, distinct from the first score.
Complete example
This complete Slint file is a visual composition used to produce the screenshot above. Internal strings without a label property retain the kit’s default language; system dialogs follow the host platform. Projected state and callbacks requesting a decision need host wiring; the standalone fixture does not supply that controller. Set up the Rust project, then see the typed controller application for working editing, validation and selection.
// SPDX-License-Identifier: GPL-3.0-or-later
import { KitRating, KitTheme, KitThemes } from "@kit/kit.slint";
export component Example inherits Window {
title: "KitRating example";
preferred-width: 560px;
preferred-height: 170px;
max-width: 100000px;
max-height: 100000px;
background: root.theme.canvas;
in-out property <KitTheme> theme: KitThemes.light;
in-out property <string> status;
VerticalLayout {
padding: 24px; spacing: 16px; alignment: start;
Text { text: "Rating"; color: root.theme.text-primary; font-size: 20px * root.theme.text-scale; font-weight: 600; }
KitRating { theme: root.theme; label: "Your rating"; generation: 1; active-token: 4; scores: [{ token: 1, label: "1 stars", selected: false, disabled: false }, { token: 2, label: "2 stars", selected: false, disabled: false }, { token: 3, label: "3 stars", selected: false, disabled: false }, { token: 4, label: "4 stars", selected: true, disabled: false }, { token: 5, label: "5 stars", selected: false, disabled: false }]; }
if root.status != "": Text { text: root.status; color: root.theme.text-secondary; font-size: 12px * root.theme.text-scale; wrap: word-wrap; }
}
}
Public API
Inherits Rectangle.
The declarations below come from the component source. Parent properties remain available; see the controller guide for state management.
Properties
| Name | Type | Direction |
|---|---|---|
theme |
KitTheme |
in |
control-size |
ControlSize |
in |
access |
FieldAccess |
in |
scores |
[ChoiceRow] |
in |
generation |
int |
in |
active-token |
int |
in |
label |
string |
in |
Types and variants
Names below use Slint syntax. Shared Rust domain types live in slint_kit; presentation enums come from the Rust types generated by Slint.
| Type | Declaration |
|---|---|
struct ChoiceRow |
token: int, label: string, disabled: bool, selected: bool |
enum ControlSize |
compact, medium, comfortable |
enum FieldAccess |
editable, read-only, disabled |
enum NavigationStep |
next, previous, first, last, page-next, page-previous |
Callbacks
navigate(NavigationStep)choose(int,int)clear-requested()