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 :

grid + marges


Sujet :

wxPython

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 293
    Par défaut grid + marges
    Bonjour,

    Je voudrais que mon grid soit affiché non pas dans le coin en haut à gauche, mais plus bas et plus à droite.
    J'essaie la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grid.SetMargins(100,100)
    mais sans résultat
    J'essaie avec l'argument pos :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grid = wx.grid.Grid(self,pos=(100,100))
    mais c'est sans effet.

    Quelqu'un aurait-il la solution ?

    Voici le script complet (qui n'est pas de moi d'ailleurs !) :

    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
    #! /usr/bin/env python
    #-*- coding: iso-8859-15 -*-
    import wx
    import  wx.grid as  gridlib
    class PageOne(wx.Panel):
        def __init__(self, parent):
            wx.Panel.__init__(self, parent)
            t = wx.StaticText(self, -1, "This is a PageOne object", (20,20))
    class PageTwo(wx.Panel):
        def __init__(self, parent):
            wx.Panel.__init__(self, parent)
            t = wx.StaticText(self, -1, "This is a PageTwo object", (40,40))
    class PageThree(wx.Panel):
        def __init__(self, parent):
            wx.Panel.__init__(self, parent)
    	
            grid = wx.grid.Grid(self,pos=(100,100))	
            grid.SetMargins(100,100)
    	
            grid.CreateGrid(5, 5) 
    	
            sizer = wx.BoxSizer()
            sizer.Add(grid, 1)
            self.SetSizer(sizer)
     
    class MainFrame(wx.Frame):
        def __init__(self):
            wx.Frame.__init__(self, None, title="Simple Notebook Example",size=(800,600)) 
            p = wx.Panel(self)
            nb = wx.Notebook(p)
            page1 = PageOne(nb)
            page2 = PageTwo(nb)
            page3 = PageThree(nb)
            nb.AddPage(page1, "Page 1")
            nb.AddPage(page2, "Page 2")
            nb.AddPage(page3, "Page 3")
            sizer = wx.BoxSizer()
            sizer.Add(nb, 1, wx.EXPAND|wx.ALL)
            p.SetSizer(sizer)
     
    if __name__ == "__main__":
        app = wx.App()
        MainFrame().Show()
        app.MainLoop()




  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Par défaut
    Voilà en fait le code que tu montres en exemple est assez flou pour moi

    Il y'a des panel dans tous les sens, certains meme inutiles...Bref en me basant sur l'exemple d'Alain_72 je t'ai fait un code sans sizers (ce qui t'empechait précédement de placer ta grille)

    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
    #-*- coding: iso-8859-15 -*-
     
    import wx
    import  wx.grid as  gridlib
     
    class Onglets(wx.Notebook):
            # Classe dérivée du wx.Notebook
            def __init__(self, parent):
                    wx.Notebook.__init__(self, parent, -1)
     
            def AjoutePage(self,nom):
                    win = wx.Panel(self, -1)
                    self.AddPage(win, nom)
                    grid = Grid(win)
     
    class Grid(gridlib.Grid):
            def __init__(self, parent):
                    gridlib.Grid.__init__(self, parent, -1,pos=(100,100),size=(500,400))
                    self.CreateGrid(5, 5)
     
    class Fenetre(wx.Frame):
            # Frame destinée à tester notre notebook
            def __init__(self):
                    wx.Frame.__init__(self, None, -1, title = "Test Notebook", size = (500, 400)) 
                    # Instanciation de notre classe Notebook
                    self.notebook = Onglets(self)
                    self.notebook.AjoutePage("Onglet Grid")
     
    class App(wx.App):
            def OnInit(self):
                    f = Fenetre()
                    f.Show(True)
                    self.SetTopWindow(f)
                    return True
     
    if __name__ == "__main__":
            monApp = App()
            monApp.MainLoop()
    Tu peux maintenant définir la taille et l'emplacement de ta grille dans l'init de sa classe

    PS : Je n'ai trouvé aucun moyen de donner des coordonnées a un sizer, donc cette solution est pour moi la plus simple

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 293
    Par défaut
    Ta méthode fonctionne et je t'en remercie. Je vais maintenant analyser le code des 2 scripts pour mieux comprendre.


  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Par défaut
    De rien , j'avais pris le même exemple que toi quand j'avais commencé à m'interesser au mélange onglets et grid, mais c'est beaucoup plus simple en créant une classe d'onglets

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

Discussions similaires

  1. wx.grid.Grid et marges
    Par Reeter dans le forum wxPython
    Réponses: 0
    Dernier message: 30/09/2009, 09h52
  2. [EXCEL]Modifier les marges d'une page dans Excel
    Par ms91fr dans le forum Composants VCL
    Réponses: 4
    Dernier message: 06/01/2004, 15h26
  3. capter l'evenement clic sur une cellule d'un string grid
    Par lasconic dans le forum Composants VCL
    Réponses: 3
    Dernier message: 25/06/2003, 10h51
  4. Centrer un texte dans un string Grid
    Par christine dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/10/2002, 22h33
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

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