Bonjour et merci de me lire/aider.
J'utilise une QtableView (AllEditTrigger) personnalisée remplie par un modèle personnalisé.
Lorsque l'utilisateur change de cellule (par clic/clavier ou perte de focus sur la QTableView) alors qu'il était en train de la modifier, je dois rétablir la valeur qui était auparavant affichée. La cellule peut contenir un delegate personnalisé (qui crée un QLineEdit avec un masque de saisie).
J'ai une méthode qui fonctionne "à peu près" un peu barbare :
Ma TableView possède un slot OnCurrentChanged connecté au Signal currentChanged(currentIndex,previousIndex) du modèle de selection ( selectionModel() ) ce qui me permet de détecter les changements de cellule. A partir de la, je fais appel à setData sur mon model pour rétablir la valeur sur le "previousIndex". Sur les lignes où j'ai un delegate cela ne fonctionne pas, et si la table perd le focus alors qu'on est en train d'éditer la cellule, la valeur est automatiquement "commité".
Connaitriez-vous un moyen plus propre d'arriver à mes fins ?
Partager