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 :

Python 3.5 PyQt5 et QCombBox


Sujet :

PyQt Python

  1. #1
    Membre averti
    Homme Profil pro
    retraité, actif ??
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : retraité, actif ??
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut Python 3.5 PyQt5 et QCombBox
    Bonjour,

    Je souhaite supprimer un item d'une liste dependant d'un combobox.
    Pour cela suivant la doc:
    void QComboBox::removeItem(int index)

    Removes the item at the given index from the combobox. This will update the current index if the index is removed.
    This function does nothing if index is out of range.
    Seulement, tous les éléments de la liste sont supprimés.

    Voir le fichier joint pour tester ..

    Merci de vos suggestions à venir.

    Pancrace
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 304
    Par défaut
    Salut,

    C'est normal, lorsque tu enlèves l'item courant il y changement d'item courant et nouveau signal et nouvel enlèvement de l'item courant et, et, et ...

    Le signal contient l'index de l'item sélectionné donc en faisant ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        def combobox_changed(self, idx):
            pos = self.combobox.currentIndex()
            print(idx, pos)
            self.combobox.removeItem(pos)
    on obtient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    4 4
    4 4
    3 3
    2 2
    1 1
    0 0
    -1 -1
    Tout s'explique avec print !

    Solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        def combobox_changed(self, idx):
            self.combobox.blockSignals(True)
            self.combobox.removeItem(idx)
            self.combobox.blockSignals(False)

  3. #3
    Membre averti
    Homme Profil pro
    retraité, actif ??
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : retraité, actif ??
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut Python 3.5 PyQt5 et QCombobox
    Bonjour Vins,

    Merci pour ta réponse
    blockSignals
    m'a échappé n'étant pas dans la page QComboBox Class .

    J'ai effectue la modification de code, cela correspond à mon attente.

    Par ailleurs,j'ai trouvé une autre façon:
    Le signal currentIndexChanged est remplacé par activated

    La liste est passée en paramètre à la classe, ce qui me permet d'utiliser les propriétés de liste en python ,dans une version =_03, j'ai testé la propriété de liste
    remove(text)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    text = self.combobox.currentText()
    maix text est codé en unicode et non en utf-8 ; pour y remedier, en premier placer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from __future__ import unicode_literals
    Ainsi, j'obtiens me même résultat. Ton code est plus compact.

    Pancrace

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

Discussions similaires

  1. Nouveau sur le dev python et GUI avec PyQt5
    Par master4 dans le forum PyQt
    Réponses: 4
    Dernier message: 10/04/2018, 21h13
  2. Installation de PyQt5 sous WIN 10 Python 2.7.13
    Par Fawn_noOb_wxPython dans le forum PyQt
    Réponses: 1
    Dernier message: 15/08/2017, 17h47
  3. [Python 2.X] PyQt5 refuse de lancer mon script python "QApplication"
    Par yonafunu dans le forum GUI
    Réponses: 6
    Dernier message: 17/02/2017, 20h40
  4. Réponses: 4
    Dernier message: 27/11/2016, 16h19
  5. PyQT5 for python 3.3 (PyCharm)
    Par Bloby dans le forum PyQt
    Réponses: 0
    Dernier message: 13/07/2014, 22h49

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