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 :

Associer un fichier à un item QTreeWidget [QtGui]


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 66
    Par défaut Associer un fichier à un item QTreeWidget
    Bonjour tout le monde,

    Je travaille sur une appli. de test avec le module PyUnit (ou unittest) et je souhaite afficher graphiquement mes fiches de tests dans un QTreeWidget :

    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
        def createTree(self):
            self.tree_wid = QTreeWidget()
            self.populateTree()
            return self.tree_wid
     
        def populateTree(self):
            self.treeRowCount = 0
            self.tree_wid.clear()
            self.tree_wid.setColumnCount(3)
            self.tree_wid.headerItem().setText(0,"Test Name")
            self.tree_wid.headerItem().setText(1,"Description")
            self.tree_wid.headerItem().setText(2,"Status")
     
     
            for dirnames in os.path.join(self.test_path):
                rootItems = QTreeWidgetItem(self.tree_wid, [dirnames])
                self.treeRowCount += 1
                for filenames in os.walk('.', self.test_path):
                    childItems = QTreeWidgetItem(rootItems, [filenames])
                    self.treeRowCount += 1
    Comme vous l'avez constaté, je ne sait pas trop comment générer un arbre avec les répertoires et fichiers respectifs associés aux items .

    Comment bien générer mon arbre à partir d'un répertoire donnée ( monrép -> messousréps -> mesfichiers ) ??


    En vous remerçiant !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 66
    Par défaut
    Personne n'à une idée?

    Pour résumer je cherche simplement à ajouter un répertoire à un QTreeWidget, peut-être qu'il à une autre solution pour avoir un rendu en forme d'arborescence à partir d'un répertoire?

    Merci encore!

  3. #3
    Expert confirmé

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

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

    Puisque je vois que tu utilises os.walk, c'est qu'il ne s'agit pas d'une sélection de fichiers, alors ceci devrait te convenir :

    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
     
    class SourceTree(QtGui.QTreeView):
        def __init__(self, main, parent=None):
            super(SourceTree, self).__init__(parent)
            self.main = main
            self.setDragEnabled(True)
            self.setDragDropMode(QtGui.QAbstractItemView.DragOnly)
            self.setDefaultDropAction(QtCore.Qt.CopyAction)
            self.setAlternatingRowColors(True)
            self.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
     
     
        def set_source(self, folder):
            self.up_folder = os.path.dirname(folder)
            self.dirModel = QtGui.QFileSystemModel()
            self.dirModel.setRootPath(QtCore.QDir.homePath())
            self.setModel(self.dirModel)
            self.setRootIndex(self.dirModel.index(self.up_folder)) 
            self.setWordWrap(True)
            self.hideColumn(1)
            self.hideColumn(2)
            self.hideColumn(3)
            idx = self.dirModel.index(folder)
            self.expand(idx)
            #FIXME the following line don't works on PyQt 4.7.0
            self.scrollTo(idx, QtGui.QAbstractItemView.EnsureVisible)
    Je te le donnes tel que je l'utilise, mais bon tu devrais pouvoir facilement adapter.

    L'instance du treeWidget est d'abord créée, moi j'avais besoin de draguer, tu enlèves si tu n'en a pas besoin.

    Après création de l'instance, on appelle sa méthode 'set_source' en lui passant en argument (folder) le dossier qui correspond chez toi à self.test_path.

    Tu remarqueras que ici, on laisse à Qt le travail de os.walk.

    Au passage, Il y a FIXME, celui qui trouve une solution à cela sera assuré de ma très haute considération pour quelques générations.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 66
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    Puisque je vois que tu utilises os.walk, c'est qu'il ne s'agit pas d'une sélection de fichiers, alors ceci devrait te convenir :

    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
     
    class SourceTree(QtGui.QTreeView):
        def __init__(self, main, parent=None):
            super(SourceTree, self).__init__(parent)
            self.main = main
            self.setDragEnabled(True)
            self.setDragDropMode(QtGui.QAbstractItemView.DragOnly)
            self.setDefaultDropAction(QtCore.Qt.CopyAction)
            self.setAlternatingRowColors(True)
            self.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
     
     
        def set_source(self, folder):
            self.up_folder = os.path.dirname(folder)
            self.dirModel = QtGui.QFileSystemModel()
            self.dirModel.setRootPath(QtCore.QDir.homePath())
            self.setModel(self.dirModel)
            self.setRootIndex(self.dirModel.index(self.up_folder)) 
            self.setWordWrap(True)
            self.hideColumn(1)
            self.hideColumn(2)
            self.hideColumn(3)
            idx = self.dirModel.index(folder)
            self.expand(idx)
            #FIXME the following line don't works on PyQt 4.7.0
            self.scrollTo(idx, QtGui.QAbstractItemView.EnsureVisible)
    Je te le donnes tel que je l'utilise, mais bon tu devrais pouvoir facilement adapter.

    L'instance du treeWidget est d'abord créée, moi j'avais besoin de draguer, tu enlèves si tu n'en a pas besoin.

    Après création de l'instance, on appelle sa méthode 'set_source' en lui passant en argument (folder) le dossier qui correspond chez toi à self.test_path.

    Tu remarqueras que ici, on laisse à Qt le travail de os.walk.

    Au passage, Il y a FIXME, celui qui trouve une solution à cela sera assuré de ma très haute considération pour quelques générations.
    Salut à toi ,

    Je te remercie pour la solution, elle marche néanmoins j'ai du modifier mon code pour utiliser un QTreeView et non pas un QTreeWidget.

    Je crois que mon erreur principale était de m'entêter à utiliser le TreeWidget qui est plus complexe d'utilisation....

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

Discussions similaires

  1. [Wise][Registre] Association de fichier pendant installation
    Par leminipouce dans le forum Windows
    Réponses: 3
    Dernier message: 30/10/2007, 21h49
  2. pb pour associé un fichier chm avec un projet MFC
    Par Cédric_07 dans le forum MFC
    Réponses: 9
    Dernier message: 05/12/2006, 15h56
  3. Association type fichier et logiciel
    Par chris_wafer_2001 dans le forum Autres Logiciels
    Réponses: 14
    Dernier message: 21/11/2005, 21h12
  4. Réponses: 5
    Dernier message: 28/04/2004, 15h20
  5. [SHELL] Icônes associées à des fichiers
    Par agh dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 09/04/2003, 17h04

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