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 :

alimenter QTreeView avec Qt designer / uic.Load


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 alimenter QTreeView avec Qt designer / uic.Load
    Bonjour
    Dans mon apprentissage de PyQt5 avec Qt designer / uic.Load.

    j essai de comprendre le fonctionnement de QTreeView ( surtout l’alimentation ).

    Je construis donc une fenêtre simple avec Qt designer et j’essaie de l’alimenter avec l’exemple :
    https://learndataanalysis.org/displa...yqt5-tutorial/

    Je me retrouve toujours avec une fenêtre vide

    Si vous pouvez m’aider sur le sujet


    mon 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
    import sys
    from PyQt5.QtWidgets import*
    from PyQt5 import uic
    from PyQt5.Qt import QStandardItemModel, QStandardItem
    from PyQt5.QtGui import QFont, QColor
     
     
    class StandardItem(QStandardItem):
        def __init__(self, txt='', font_size=12, set_bold=False, color=QColor(0, 0, 0)):
            super().__init__()
     
            fnt = QFont('Open Sans', font_size)
            fnt.setBold(set_bold)
     
            self.setEditable(False)
            self.setForeground(color)
            self.setFont(fnt)
            self.setText(txt)
     
    class MyForm(QDialog):
     
        def __init__(self):
            super(MyForm,self).__init__()
            uic.loadUi(r'C:\Users\*******\testlist.ui',self)
            self.treeView = self.findChild(QTreeView,'treeWidget')
     
            self.treeView.setHeaderHidden(True)
     
            treeModel=QStandardItemModel()
            rootNode=treeModel.invisibleRootItem()
     
            # America
            america=StandardItem('America',16,set_bold=True)
     
            california=StandardItem('California',14)
            america.appendRow(california)
     
            oakland=StandardItem('Oakland',12,color=QColor(155,0,0))
            sanfrancisco=StandardItem('San Francisco',12,color=QColor(155,0,0))
            sanjose=StandardItem('San Jose',12,color=QColor(155,0,0))
     
            california.appendRow(oakland)
            california.appendRow(sanfrancisco)
            california.appendRow(sanjose)
     
            rootNode.appendRow(america)
     
     
     
            self.treeView.expandAll()
     
     
     
     
     
     
    #    TEST LISBOX
     
            self.listeB=self.findChild(QListWidget,'listWidget')
            self.listeB.doubleClicked.connect(self.getValue)
     
            list_test=["Red","Orange","Blue","lala"]
     
            for i in range(len(list_test)):
                self.listeB.insertItem(int(i),list_test[i])
     
        def getValue(self,val):
            item=self.listeB.currentItem()
            print(item.text())
     
     
     
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        myform = MyForm()
        myform.show()
        sys.exit(myform.exec_())

    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

    Il faudrait pouvoir exécuter le programme, mais il manque au moins testlist.ui: peut-on l'avoir?

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 827
    Billets dans le blog
    1
    Par défaut
    Bonjour

    PyQt est livré avec divers exemples montrant les outils de base et la façon de les utiliser.

    Ci-dessous le code du programme nommé "dirview.py" lequel affiche l'arborescence du dossier courant (le lui ai juste enlevé quelques trucs qui n'avaient rien à voir avec le TreeView proprement dit)
    Code python : 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
    #!/usr/bin/python3
     
    import sys
    from PyQt5.QtCore import *
    from PyQt5.QtWidgets import *
     
    app = QApplication(sys.argv)
     
    model = QFileSystemModel()
    model.setRootPath('')
    tree = QTreeView()
    tree.setModel(model)
     
    # Demonstrating look and feel features.
    tree.setAnimated(False)
    tree.setIndentation(20)
    tree.setSortingEnabled(True)
     
    availableSize = QApplication.desktop().availableGeometry(tree).size()
    tree.resize(availableSize / 2)
    tree.setColumnWidth(0, tree.width() // 3)
     
    tree.setWindowTitle("Dir View")
    tree.show()
     
    sys.exit(app.exec_())

    Salut tyrtamos - Ca fait plaisir de te revoir
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Expert confirmé

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

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

    Ta fenêtre vide c'est le QDialog, il n'y a aucune raison que le widget que tu charges avec loadUi s'affiche.

    Si loadUi procède de la même manière que pyuic5 alors il faudra sans doute appeler une méthode setup en lui passant l'instance du QDialog (self, en fait)

    Et pour que ce soit redimensionnable, il faudra un layout sur le QDialog pour accueillir ton widget.

  5. #5
    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 Sve@r

    Citation Envoyé par Sve@r Voir le message
    Salut tyrtamos - Ca fait plaisir de te revoir
    Merci ! Je suis ravi de revenir et de revoir les amis ! .

  6. #6
    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
    Merci pour vos réponses

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

Discussions similaires

  1. [DBDesigner] Out of memory avec DB Designer 4 et Mysql
    Par titeuf38 dans le forum DBDesigner
    Réponses: 5
    Dernier message: 03/05/2007, 12h00
  2. problème avec sql designer
    Par artotal dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/08/2006, 16h57
  3. Alimenter DBgrid avec requete SQL ?
    Par La_Bande_A_Zozo dans le forum C++Builder
    Réponses: 5
    Dernier message: 31/05/2006, 17h51
  4. erreur lors de connexion avec Database designer 4
    Par magic charly dans le forum Designer
    Réponses: 1
    Dernier message: 10/04/2006, 14h37

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