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

wxPython Discussion :

Initialisation d'une TreeListCtrl virtuelle [*args, **kwargs]


Sujet :

wxPython

Vue hybride

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 71
    Par défaut Initialisation d'une TreeListCtrl virtuelle [*args, **kwargs]
    Bonjour à tous,

    Je voudrais créer une TreeListCtrl virtuelle, mais je n'arrive pas initialiser la liste virtuelle.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Class virtualTreeList (VirtualTree, TreeListCtrl):
        def __init__ (self, parent, mainwindow, source):
            TreeListCtrl.__init__(self, parent, -1, style=wx.TR_DEFAULT_STYLE | wx.TR_FULL_ROW_HIGHLIGHT)
            VirtualTree.__init__(self, parent)

    La documentation de wxPython indique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Class VirtualTree
        __init__(self, *args, **kwargs)
    Quel paramètre dois-je donc passer?

    http://wxpython.wxcommunity.com/docs...ree-class.html



    Mon code engenre les erreurs suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    swig/python detected a memory leak of type 'wxPyTreeListCtrl *' , no destructor found
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    in _core.py, line 14033, in __getattr__
    raise PyDeadObjetError(self.attrStr % )
    wx._core.PyDeadObjetError : The C++ part of the virtualTreeList object has been deleted, attribute access no longer allowed

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 71
    Par défaut
    Après maints essais, et copier/coller/couper des démos de wxPython, j'arrive à faire tourner quelque chose, mais je ne comprends pas...

    Et ce que je ne comprends pas, c'est le fonctionnement de *args et **kwargs.
    Si quelqu'un peut m'expliquer ou m'envoyer sur un lien explicatif.

    Quel intérêt d'avoir une liste d'arguments et un dictionnaire d'arguments ?

    Qu'est-ce que ça signifie quand, dans une documentation, on demande une initialisation par

    __init__(self, *args, **kwargs)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 71
    Par défaut
    Si ça intéresse quelqu'un, comme ça, ça fonctionne :

    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
     
    class myVirtualTree (VirtualTree):
        def __init__ (self, *args, **kwargs):
            self.source = kwargs.pop('source')
            VirtualTree.__init__(self, *args, **kwargs)
     
            size = (16, 16)
            self.imageList = wx.ImageList(*size)
            for art in wx.ART_FOLDER, wx.ART_FILE_OPEN, wx.ART_NORMAL_FILE:
                self.imageList.Add(wx.ArtProvider.GetBitmap(art, wx.ART_OTHER, size))
            self.AssignImageList(self.imageList)
     
    class VirtualTreeListCtrl(myVirtualTree, TreeListCtrl):
        def __init__ (self, *args, **kwargs):
            kwargs['style'] = wx.TR_DEFAULT_STYLE|wx.TR_FULL_ROW_HIGHLIGHT
            super(VirtualTreeListCtrl, self).__init__(*args, **kwargs)
            self.AddColumn("Lemmes", 140)       # 0
            self.AddColumn("Drapeaux", 65)       # 1
            self.AddColumn("Morph.", 55)         # 2
            self.AddColumn("A", 20)              # 3
            self.AddColumn("Dictionnaires", 80)  # 4
            self.AddColumn("Décision", 50)       # 5
            #self.SetMainColumn(0)
            for art in wx.ART_TIP, wx.ART_WARNING:
                self.imageList.Add(wx.ArtProvider.GetBitmap(art, wx.ART_OTHER, (16, 16)))
     
        def OnGetItemText (self, indices, column=0):
            [...]
     
        def OnGetChildrenCount (self, indices):
            [...]
     
        def OnGetItemChildren (self, index, False):
            [...]
     
        def OnGetItemImage (self, indices, which, column=0):
            [...]
     
        def OnGetItemFont(self, indices):
            [...]
     
        def OnGetItemTextColour(self, indices):
            [...]
     
        def OnGetItemBackgroundColour(self, indices):
            [...]

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 19/09/2012, 12h27
  2. Initialisation d'une colonne par rapport à une autre colonne
    Par jeromesco dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/04/2005, 17h15
  3. Comment l'appel à une méthode virtuelle....
    Par Blobette dans le forum C++
    Réponses: 7
    Dernier message: 07/12/2004, 13h55
  4. Création d'une imprimante virtuelle
    Par pilpagouna dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/06/2004, 13h38
  5. [Initialisation] Remplir une structure une fois
    Par Kimael dans le forum Langage
    Réponses: 14
    Dernier message: 08/06/2004, 15h33

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