Vérification d'un champ dans une table
Bonjour,
J'ai une QTableWidget où je souhaite vérifier la donnée saisie par un utilisateur.
L'entrée doit être un point se composant comme suit "nombre,nombre" (il s'agit d'un point). Nombre est un réel, ex "674097.85,6813.25" sans les guillemets, et sans précision sur le nombre de chiffres après la virgule.
J'ai pour l'instant la solution de vérifier l'entrée en séparant les parties par la virgule, compter s'il n'y a que 2 parties et vérifier que l'on peut les convertir en float
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #!/usr/bin/env python
#-*- coding:utf-8 -*-
def mon_validateur(str):
list_s = str.split(',')
if len(list_s) != 2:
return False
try:
float(list_s[0])
float(list_s[1])
return list_s
except ValueError:
return False
test1 = "456,789"
test2 = "45qsfd7.46, 46768541"
test3 = "312.45,456,789"
test4 = "12345.45.54, 456789,789"
print mon_validateur(test1)
print mon_validateur(test2)
print mon_validateur(test3)
print mon_validateur(test4) |
Quelle méthode puis-je utiliser pour arriver au même résultat dans une QTableWidget pour chaque item devant contenir des données de ce type (QValidator, QstyledItemDelegate) ?
En vous remerciant par avance.