IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PyQt Python Discussion :

Savoir si une ligne d'une QTableWidget est sélectionnée


Sujet :

PyQt Python

  1. #1
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 434
    Points : 108
    Points
    108
    Par défaut Savoir si une ligne d'une QTableWidget est sélectionnée
    Bonjour,

    J'ai créé une QTableWidget qui est vide au départ. J'ai deux boutons, un 'AddRow' et un second 'DeleteRow'. Pas de problème pour ajouter une ligne. Mon problème se situe lors de la suppression d'une ligne. Je voudrais que si je n'ai pas de ligne sélectionnée il ne se passe rien si l'utilisateur clique sur le bouton supprimer, et si une ligne sélectionnée un message s'affiche avec "Voulez-vous supprimer la ligne x?'

    Merci par avance pour votre aide.

    Pour la partie suppression, j'ai commencé par cette méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def DeleteSelectedLine(self):
     
            if self.table2Widget.rowCount() != 0:
                self.buttonReply = QMessageBox.warning(self, APPLICATION_NAME, "Voulez-vous supprimer la ligne "+str(self.table2Widget.currentRow())+"?" , QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
                if self.buttonReply == QMessageBox.Yes:
                    self.table2Widget.removeRow(self.table2Widget.currentRow())

  2. #2
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 434
    Points : 108
    Points
    108
    Par défaut
    J'ai reussi à faire ce que je désirais. Ce n'est pas peut-être la meilleure méthode, mais elle fait son travail!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        #--- Delete row in QTableWidget tab2 -----------------------------------------------------------   
        def DeleteSelectedLine(self):
     
            if self.table2Widget.currentRow() == -1 and self.table2Widget.rowCount() ==0:
                return
            elif self.table2Widget.currentRow() == -1 and self.table2Widget.rowCount() !=0:
                QMessageBox().information(self, APPLICATION_NAME, "Veuillez sélectionner une ligne!", QMessageBox.Ok)
            else:
                self.buttonReply = QMessageBox.warning(self, APPLICATION_NAME, "Voulez-vous supprimer la ligne "+str(self.table2Widget.currentRow()+1)+"?" , QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
                if self.buttonReply == QMessageBox.Yes:
                    self.table2Widget.removeRow(self.table2Widget.currentRow())

  3. #3
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour

    Au lieu d’un bouton, je te suggère de faire ça plutôt avec un popup menu. Ainsi, pour la suppression d’une ligne, le code retrouvera où se trouve la souris, et donc la ligne à supprimer.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  4. #4
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 434
    Points : 108
    Points
    108
    Par défaut
    J'avais pas pensé au Pop-up... le concept est pas mal ^^, mais je t'avouerai que j'ai peiné à faire le bout de code précédent... Je regarderai ça quand mon niveau sera plus élevé Merci à toi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/07/2015, 14h11
  2. [WD17] Savoir si une Imprimante est en ligne
    Par davcaz dans le forum WinDev
    Réponses: 3
    Dernier message: 05/07/2013, 13h46
  3. savoir si une ligne d'un dataGrid est sélectionnée
    Par soft_angel dans le forum VB.NET
    Réponses: 2
    Dernier message: 21/09/2008, 22h42
  4. Comment savoir si une fenêtre est sélectionnée
    Par whitebird001 dans le forum MFC
    Réponses: 2
    Dernier message: 07/06/2008, 23h30
  5. Savoir si une personne est en ligne...
    Par cortex024 dans le forum Langage
    Réponses: 31
    Dernier message: 28/06/2006, 23h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo