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 :

classement Items QTreeWidgetItem


Sujet :

PyQt Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 55
    Par défaut classement Items QTreeWidgetItem
    Bonjour à tous,
    Je souhaite si possible faire un reclassement des items par une ordre définit après l’import dans un QTreeWidgetItem.

    Nom : Capture.PNG
Affichages : 103
Taille : 2,3 Ko




    Exemple ici :

    reclasser le item3 en première position/item1 en deuxième …….


    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    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 486
    Billets dans le blog
    6
    Par défaut
    Bonjour

    On peut faire ça à la main (ou plutôt à la souris) en activant le "drag & drop".

    Petit code test:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
     
    import sys
    from PyQt5 import (QtWidgets, QtGui, QtCore)
     
    #############################################################################
    class TreeWidget(QtWidgets.QTreeWidget):
     
        # =======================================================================
        def __init__(self, parent=None):
            super().__init__(parent)
     
            self.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection)#self.ExtendedSelection)
     
            self.setAcceptDrops(True)
            self.setDragDropMode(self.InternalMove)
            self.setDragEnabled(True)
            self.setAcceptDrops(True)
            self.setDropIndicatorShown(True)
     
    #############################################################################
    class Fenetre(QtWidgets.QWidget):
     
        # =======================================================================
        def __init__(self, parent=None):
            super().__init__(parent)
     
            self.resize(800, 600)
            self.setWindowTitle("Affiche arbre")
     
            self.tw = TreeWidget(self)
     
            self.tw.setColumnCount(3)
            self.tw.setHeaderLabels(["Column 1", "Column 2", "Column 3"])
     
            l1 = QtWidgets.QTreeWidgetItem(["String A", "String B", "String C"])
            self.tw.addTopLevelItem(l1)
     
            for i in range(0, 3):
                l1_child = QtWidgets.QTreeWidgetItem(["Child 1A" + str(i), "Child 1B" + str(i), "Child 1C" + str(i)])
                l1.addChild(l1_child)
     
            for i in range(0, 3):
                l1_child = QtWidgets.QTreeWidgetItem(["Child 2A" + str(i), "Child 2B" + str(i), "Child 2C" + str(i)])
                l1.child(1).addChild(l1_child)
     
            for i in range(0, 3):
                l1_child = QtWidgets.QTreeWidgetItem(["Child 3A" + str(i), "Child 3B" + str(i), "Child 3C" + str(i)])
                l1.child(1).child(0).addChild(l1_child)
     
            layout = QtWidgets.QGridLayout()
            layout.addWidget(self.tw, 0, 0)
            self.setLayout(layout)
     
            # développe l'arborescence
            self.tw.expandAll()
            #self.tw.expandToDepth(0) # développe seulement le niveau 0
            #self.tw.expandToDepth(1) # développe les niveaux 0 et 1
     
            # ajuste la largeur des colonnes à leur contenu
            for col in range(0, self.tw.columnCount()):
                self.tw.resizeColumnToContents(col)
     
        # =======================================================================
        def keyPressEvent(self, event):
            """raccourcis clavier
            """
            if self.tw.hasFocus():
                if event.key() == QtCore.Qt.Key_E and (event.modifiers() & QtCore.Qt.AltModifier):
                    self.tw.expandAll()
                    #self.tw.expandToDepth(0)
                    #self.tw.topLevelItem(0).child(0).setSelected(True) 
                    # ajuste la largeur des colonnes à leur contenu
                    for col in range(0, self.tw.columnCount()):
                        self.tw.resizeColumnToContents(col)
                    event.accept()
            else:
                event.ignore()
                super().keyPressEvent(event)
     
    #############################################################################
    if __name__ == "__main__":
        app = QtWidgets.QApplication(sys.argv)
        fen = Fenetre()
        fen.show()
        sys.exit(app.exec_())

  3. #3
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 302
    Par défaut
    bonjour

    je n'ai pas compris ton besoin exact !
    changer de colonne ou, inverser une colonne ... existe: .sortItems(colonne, ordre)
    Existe aussi la class QSortFilterProxyModel qui permet des choses plus avancées

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/03/2009, 15h44
  2. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 17h03
  3. Comment effacer des Items d'un TListView ?
    Par boyerf dans le forum Composants VCL
    Réponses: 4
    Dernier message: 11/11/2002, 10h19
  4. Recuper les items de ListBox d'une autre application [API?]
    Par Shamanisator dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 27/09/2002, 12h32
  5. ListView->Items->Clear() !!! Qques probl de perf
    Par Nicolas_a69 dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/08/2002, 11h49

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