Slint Kit Documentation

Structure des formulaires

Libellé de champ pour Slint

KitFieldLabel · Slint Kit 0.3.0

Brique de composition pour relier le libellé d’un champ personnalisé au focus de son éditeur.

Composant de composition · option commune label

Brique de composition pour relier le libellé d’un champ personnalisé au focus de son éditeur.
Application native de l’exemple ci-dessous.

Essayer le composant

Télécharger le projet complet, le décompresser et lancer cargo run --locked dans son dossier. Rust 1.92+ ; Slint Kit 0.3.0 depuis crates.io. Vous pouvez aussi copier les quatre fichiers ci-dessous.

Cliquez sur le libellé, puis saisissez du texte dans le champ natif qui reçoit le focus.

ui/app.slint

export { KitFormValidation, HtmlInputKind, NumberInputFormat, KitInputConstraints, KitValidationResult, KitValidityState } from "@kit/kit.slint";
// SPDX-License-Identifier: GPL-3.0-or-later
import { KitField, KitFieldLabel, KitTextField, KitTheme, KitThemes } from "@kit/kit.slint";

export component App inherits Window {
    title: "KitFieldLabel example";
    preferred-width: 420px;
    preferred-height: 180px;
    max-width: 100000px;
    max-height: 100000px;
    background: root.theme.canvas;
    in-out property <KitTheme> theme: KitThemes.light;
    VerticalLayout {
        padding: 24px; spacing: 16px; alignment: start;
        Text { text: "Field Label"; color: root.theme.text-primary; font-size: 20px * root.theme.text-scale; font-weight: 600; }
        KitField {
            KitFieldLabel { theme: root.theme; text: "Email address";  focus-requested => { editor.take-focus(); } } editor := KitTextField { theme: root.theme; placeholder: "you@example.com"; }
        }
    }
}

src/main.rs

// SPDX-License-Identifier: GPL-3.0-or-later
slint::include_modules!();

fn main() -> Result<(), slint::PlatformError> {
    let app = App::new()?;
    slint_kit::init_form_validation!(self, app);
    app.run()
}

Cargo.toml et build.rs

Cargo.toml

[package]
name = "slint-kit-field-label-example"
version = "0.1.0"
edition = "2024"
rust-version = "1.92"
license = "GPL-3.0-or-later"
publish = false

[dependencies]
slint-kit = "=0.3.0"
slint = { version = "=1.18.1", default-features = false, features = ["std", "compat-1-18", "backend-winit", "renderer-skia", "accessibility"] }

[build-dependencies]
slint-kit-build = "=0.3.0"

[workspace]

build.rs

fn main() {
    slint_kit_build::compile("ui/app.slint").expect("compile component example");
}

Fichiers : Cargo.toml · build.rs · ui/app.slint · src/main.rs

Pour un champ standard, utilisez directement la propriété label de KitTextField, KitEmailField, KitTextArea ou du contrôle choisi : son libellé est déjà intégré. Utilisez KitFieldLabel séparément pour composer votre propre champ ; reliez alors focus-requested à take-focus() et partagez le même FieldAccess avec l’éditeur.

Le texte revient à la ligne et suit l’échelle typographique. FieldAccess.disabled atténue le libellé et empêche la demande de focus.

Option commune label

La démonstration utilise la brique KitFieldLabel séparément. Les contrôles ci-dessous exposent directement une propriété label : utilisez-la pour leur comportement intégré. Le rendu et les détails de focus dépendent du contrôle choisi.

Les 51 composants exposant cette propriété

Composition visuelle

Le fichier ci-dessous produit la capture. Pour les composants pilotés par un contrôleur, il montre l’état affiché sans fournir le branchement Rust. Créer un projet.

Afficher le fichier de la capture
Brique de composition pour relier le libellé d’un champ personnalisé au focus de son éditeur.
Capture native du même exemple, moteur Skia.
// Public label overrides localize this fixture; toolkit/host defaults keep their language.
// SPDX-License-Identifier: GPL-3.0-or-later
import { KitFieldLabel, KitTextField, KitTheme, KitThemes } from "@kit/kit.slint";

export component Example inherits Window {
    title: "KitFieldLabel — exemple";
    preferred-width: 420px;
    preferred-height: 180px;
    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: "Libellé de champ"; color: root.theme.text-primary; font-size: 20px * root.theme.text-scale; font-weight: 600; }
        KitFieldLabel { theme: root.theme; text: "Adresse courriel"; } KitTextField { character-count-label: "caractères"; checking-label: "Vérification…"; clear-label: "Effacer la recherche"; hide-label: "Masquer le mot de passe"; reveal-label: "Afficher le mot de passe"; theme: root.theme; placeholder: "you@example.com"; }
        if root.status != "": Text { text: root.status; color: root.theme.text-secondary; font-size: 12px * root.theme.text-scale; wrap: word-wrap; }
    }
}

Télécharger cet exemple

API publique

Hérite de Rectangle.

Propriétés

Nom Type Sens
theme KitTheme in
text string in
access FieldAccess in

Types et variantes

Type Déclaration
enum FieldAccess editable, read-only, disabled

Signaux

Voir aussi