Configuration
Prédiction de mots
Activée par défaut. Désactivez-la globalement sur le composant ou à l'exécution via le singleton :
VirtualKeyboard { predictionEnabled: false }
// ou à l'exécution :
Lnvk.predictionEnabled = false
Qt.ImhNoPredictiveText ou Qt.ImhSensitiveData, quel que soit ce réglage.
Dictionnaires de prédiction personnalisés
Fournissez des dictionnaires de prédiction métier (médical, juridique, noms de produits, etc.) par langue.
Étape 1 : compiler un fichier .pred
Utilisez le compilateur fourni dans votre bundle LNVK :
# Depuis la racine du package
./bin/lndict-compiler --flat my-words.txt prediction-en-custom.pred
Formats d'entrée acceptés par --flat :
- Liste de mots (un mot par ligne) :
word - Mot + fréquence :
word<TAB>frequency - TSV de prédiction complet :
word<TAB>word<TAB>frequency
Les lignes de type liste reçoivent automatiquement une fréquence par défaut élevée pour classer les entrées personnalisées en tête.
Étape 2 : enregistrer les dictionnaires dans votre app
Enregistrez un dictionnaire par langue/tag.
Depuis QML (via le singleton Lnvk) :
import Ln.VirtualKeyboard 1.0
Component.onCompleted: {
Lnvk.setCustomPredictionDictionary("en", "/opt/mydicts/prediction-en-custom.pred")
Lnvk.setCustomPredictionDictionary("en-US", "/opt/mydicts/prediction-en-us-custom.pred")
}
Depuis C++ :
#include <lnvk>
auto *kb = lenewt::KeyboardManager::instance();
kb->setCustomPredictionDictionary("en", "/opt/mydicts/prediction-en-custom.pred");
kb->setCustomPredictionDictionary("en-US", "/opt/mydicts/prediction-en-us-custom.pred");
Les deux chemins référencent la même instance singleton ; les appels C++ sont visibles depuis QML et inversement.
Ordre de résolution des langues :
- tag BCP47 exact (par exemple
en-US) - repli sur le tag principal (par exemple
en)
Étape 3 : choisir le mode de fusion
VirtualKeyboard {
customPredictionMode: Lnvk.Supersede
}
// ou sur le singleton :
Lnvk.customPredictionMode = Lnvk.Supersede
Modes :
Disabled: ignorer les dictionnaires personnalisés ; utiliser uniquement le dictionnaire intégréReplace: utiliser uniquement le dictionnaire personnalisé pour la langue/tag correspondante (repli sur l'intégré si absent/invalide)Supersede: candidats personnalisés en premier, puis candidats intégrés
Effacer les mappings à l'exécution :
Lnvk.clearCustomPredictionDictionary("en-US")
Lnvk.clearCustomPredictionDictionaries()
Rangée de chiffres
Affichez une rangée persistante de touches numériques au-dessus de la rangée de lettres :
VirtualKeyboard { numberRowEnabled: true }
Lnvk.numberRowEnabled = true
Apprentissage
Le clavier apprend des mots saisis pour améliorer les prédictions futures. Désactivez la persistance entre sessions avec rememberLearning :
VirtualKeyboard { rememberLearning: false }
Lnvk.rememberLearning = false
rememberLearning: false, les mots appris sont effacés à la fermeture de l'application.
Hints de méthode de saisie
Le clavier adapte automatiquement sa disposition aux inputMethodHints du TextInput ou TextEdit qui a le focus :
| Hint | Comportement du clavier |
|---|---|
Qt.ImhNone | Clavier complet avec prédiction |
Qt.ImhDigitsOnly | Pavé numérique |
Qt.ImhDialableCharactersOnly | Clavier de numérotation |
Qt.ImhFormattedNumbersOnly | Nombres avec décimale et signe |
Qt.ImhEmailCharactersOnly | Disposition optimisée e-mail |
Qt.ImhUrlCharactersOnly | Disposition optimisée URL |
Qt.ImhDate | Saisie de date |
Qt.ImhTime | Saisie d'heure |
Qt.ImhPreferNumbers | Chiffres avec accès aux lettres |
Qt.ImhNoPredictiveText | Désactive la prédiction |
Qt.ImhSensitiveData | Désactive prédiction et apprentissage |
Qt.ImhHiddenText | Mode mot de passe : aucun candidat affiché |