Bonjour à tous,
Ci-dessous un morceau de code me permettant d'insérer un / lorsque l'utilisateur rentre un certain nombre de caractères, le but étant de forcer le formatage d'une zone de date :
Ce code fonctionne bien avec un TextInput.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 import QtQuick 2.0 Rectangle{ function toFormatDate(wid,txt){ if ((txt.length === 2)){ wid.text = txt+"/" console.log(txt) } if (txt.length === 5){ wid.text = txt+"/" console.log(txt) } } TextInput{ id : mytxt anchors.fill: parent Keys.onPressed: { console.log("touche pressée") if (event.key !== Qt.Key_Backspace) { if ((text.length === 2) || (text.length === 5)) { text = text+'/' } } } } }
Cependant je m'aperçois qu'avec un TextField le Keys.onPressed n'est pas émis lorsque je rentre des caractères, par contre lors du verrouillage ou déverrouillage du pavé numérique (par exemple) il fonctionne bien.
Sauriez-vous me dire ce qui cloche ? Un bogue ?
À moins que vous ayez une autre solution pour forcer le format date (par exemple jj/mm/yy)
D'avance merci à vous.
++
J
[EDIT]
Bon et bien il doit s'agir d'un bogue car j'ai testé avec Keys.onReleased à la place de Keys.onPressed et là toutes les touches sont bien concernées.
Partager