Je montre un menu contextuel pour sélectionner certaines valeurs dans un QTableWidget. L'élément le plus bas est une entrée "Modifier la liste", quand je la sélectionne, une nouvelle fenêtre devrait apparaître automatiquement et le QComboBox devrait disparaître et la cellule retourner à un état Qt :: DisplayRole.Comment puis-je dire à QTableWidget de mettre fin à l'édition d'une cellule?
Maintenant Qt a tous ces beaux appels API comme QTableWidget.edit()
et QTableWidget.editItem()
, ce que je suis vraiment à la recherche est un QTableWidget.endEditing()
, de préférence, sans préciser l'indice de la cellule, bien que je puisse obtenir qu'utiliser cet appel:
table.currentIndex()
... mais je ne sais pas si je peux garantir que la cellule en cours est la cellule en cours d'édition à tout moment.
Existe-t-il une API pour fermer ce type d'éditeur?
Votre le premier a fonctionné, le second non. Cela n'a pas d'importance de perdre le focus parce que je montre un dialogue modal. Je vais marquer cette réponse comme correcte si personne ne va proposer une solution plus naturelle. –
Je viens de lancer un exemple pour tester EditTriggers et il semble fonctionner (C++, Qt 4.4.3). Je peux cliquer sur chaque cellule et ainsi de suite, mais je ne peux pas double-cliquer dessus pour les modifier ou quoi que ce soit. Je ne sais pas pourquoi ça ne marche pas pour toi. * shrug * –
Il s'agit de fermer l'éditeur, ne pas être en mesure de le modifier. La prochaine fois que l'on cliquera deux fois, l'éditeur devrait être à nouveau ouvert. –