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 :

wx.ImageList, ca marche comment ?


Sujet :

wxPython

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 328
    Par défaut wx.ImageList, ca marche comment ?
    Bonjour à tous,

    Je suis toujours à configurer un wx.listCtrl et maintenant je bloque sur l'imagelist qui permet d'insérer des images en tête de ligne.

    J'ai 2 questions :
    1. Comment fonctionne un imagelist au juste ?
    2. Comment placer des images de tailles différentes (ex : 16x16 et 32x32) ? je n'y arrive pas.

    Merci pour vos réponses !

  2. #2
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    extrait de la demo:
    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
     
            #creation d'une liste vide de TAILLE FIXE
            self.il = wx.ImageList(16, 16)
     
            # ajout de bitmap a la liste
            self.idx1 = self.il.Add(images.getSmilesBitmap())
            self.sm_up = self.il.Add(images.getSmallUpArrowBitmap())
            self.sm_dn = self.il.Add(images.getSmallDnArrowBitmap())
     
            self.list = TestListCtrl(self, tID,
                                     style=wx.LC_REPORT 
                                     #| wx.BORDER_SUNKEN
                                     | wx.BORDER_NONE
                                     | wx.LC_EDIT_LABELS
                                     | wx.LC_SORT_ASCENDING
                                     #| wx.LC_NO_HEADER
                                     #| wx.LC_VRULES
                                     #| wx.LC_HRULES
                                     #| wx.LC_SINGLE_SEL
                                     )
            # association listCtrl <=> imageList
            self.list.SetImageList(self.il, wx.IMAGE_LIST_SMALL)
    pour peupler la listCtrl:
    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
     
                # but since we want images on the column header we have to do it the hard way:
                info = wx.ListItem()
                info.m_mask = wx.LIST_MASK_TEXT | wx.LIST_MASK_IMAGE | wx.LIST_MASK_FORMAT
                info.m_image = -1
                info.m_format = 0
                info.m_text = "Artist"
                self.list.InsertColumnInfo(0, info)
     
                info.m_format = wx.LIST_FORMAT_RIGHT
                info.m_text = "Title"
                self.list.InsertColumnInfo(1, info)
     
                info.m_format = 0
                info.m_text = "Gee"
                self.list.InsertColumnInfo(2, info)
     
            items = musicdata.items()
            for key, data in items:
                index = self.list.InsertImageStringItem(sys.maxint, data[0], self.idx1)
                self.list.SetStringItem(index, 1, data[1])
                self.list.SetStringItem(index, 2, data[2])
                self.list.SetItemData(index, key)
    Les etapes:
    • creation d'une ImageList de taille fixe;;
    • ajout de bitmap à celle-ci;
    • assignation de l'ImageList au ListCtrl;
    • insertion d'un item image/text via InsertImageStringItem.

    Pour ce qui est de placer des images de tailles differentes, je ne pense pas que cela soit possible avec les imageList, il te faudra peut être passer par un Grid (cf la demo Grid_MegaExample).

    A confirmer

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 328
    Par défaut
    Bonjour Pacificator,

    Je te remercie pour tes élèments de réponses.

    Pour mon histoire de tailles différentes, je vais développer un peu :

    Dans mon listCtrl, j'ai des images (flèches) en 16x16 en entetes de colonnes. Et j'aimerais placer des images de 32x32 en entetes de lignes. Mais le souci est en effet qu'il n'accepte qu'une seule taille pour un IMageList.

    Peut-être est-il possible de créer 2 imageList pour un ListCtrl ?

Discussions similaires

  1. [ESB] Ca marche comment ?
    Par ego dans le forum Java EE
    Réponses: 13
    Dernier message: 21/10/2008, 15h03
  2. POSIX::setsid(), ça marche comment ?
    Par CKLN00 dans le forum Modules
    Réponses: 1
    Dernier message: 06/06/2008, 14h48
  3. Le ListView, ça marche comment ?
    Par Ggamer dans le forum wxPython
    Réponses: 4
    Dernier message: 16/09/2007, 23h12
  4. [eclipse 3.2][RCP][status bar] Elle marche comment celle-là ?
    Par dahu88 dans le forum Eclipse Platform
    Réponses: 4
    Dernier message: 21/11/2006, 23h06

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