Bonjour à tous,
J'ai comme projet de réaliser une zone de saisie qui se présenterai comme Excel. J'ai donc choisi un QTableWidget pour y arriver. Il faut que l'utilisateur puisse réaliser les opérations de base (ajout d'une ligne au dessus, ajout d'une ligne en dessous, suppression d'une ligne, effacer le contenu d'une cellule) tout cela à la souris mais aussi avec le clavier.
Mon problème se situe dans la suppression d'une ligne. En effet, j'aimerai (cahier des charges..) que quand l'utilisateur appuis sur "Del", si une cellule est sélectionnée alors cela efface le contenu et si une ligne est sélectionnée cela supprime la ligne.
J'arrive a catcher l'appuis de la touche "Del" (QAction, signal, slot), le clique sur une case SIGNAL(cellCliked(int, int)) de ma QTableWidget et aussi la selection d'une ligne entière SIGNAL(sectionClicked(int)) du verticalHeader de ma QTableWidget. Mais impossible de combiner tout cela pour obtenir le résultat voulu.
J'y suis arrivé en mettant un booléen à true dans lorsque une ligne est sélectionnée et à false lorsque que c'est juste une cellule. Quand l'utilisateur appuis sur "Del" en fonction du booléen je sais c que je doit faire mais je trouve cela "crade". N'y a t'il pas de moyen plus simple pour savoir dans le slot qui exécute la suppression si c'est une ligne ou cellule qui est sélectionnée?
Merci d'avance.
Partager