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 :

Problème wx.Notebook et Sizer


Sujet :

wxPython

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 45
    Par défaut Problème wx.Notebook et Sizer
    Bonjour à tous,

    Je voudrais savoir quel code il faudrait utiliser pour mettre un GridBagSizer dans chaque page d'un Notebook.

    C'est à dire qu'il me faudrait, en gros :

    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
     
    self.top3=wx.Frame(None,-1,title="Paramètres Quizz",size=(520,300),style=wx.DEFAULT_FRAME_STYLE)
    self.nbk=wx.Notebook(self.top3,-1,size=self.top3.GetClientSize())
     
    self.pan1=wx.Panel(self.nbk,-1)
    self.pan2=wx.Panel(self.nbk,-1)
     
    self.sizer1=wx.GridBagSizer(10,10)
    self.sizer2=wx.GridBagSizer(10,10)
     
    #Page 1:
    self.nbk.AddPage(self.pan1,"1er onglet")
     
    self.static1=wx.StaticText(self.pan1,-1)
    self.sizer1.Add(self.static1,pos=(1,1))
     
    self.static2=wx.StaticText(self.pan1,-1)
    self.sizer1.Add(self.static2,pos=(2,1))
     
    self.static3=wx.StaticText(self.pan1,-1)
    self.sizer1.Add(self.static3,pos=(1,2))
     
    #Page 2:
    self.nbk.AddPage(self.pan1,"2eme onglet")
     
    self.static4=wx.StaticText(self.pan2,-1)
    self.sizer2.Add(self.static4,pos=(1,1))
     
    self.static5=wx.StaticText(self.pan2,-1)
    self.sizer2.Add(self.static5,pos=(2,1))
     
    self.static6=wx.StaticText(self.pan2,-1)
    self.sizer2.Add(self.static6,pos=(1,2))
     
    self.pan1.SetSizer(self.sizer1)
    self.pan2.SetSizer(self.sizer2)
    self.top3.Show()
    Mais malheureusement ça ne marche pas ...
    Si quelqu'un pouvait m'aider Svp,
    Merci d'avance

    Lotendan

  2. #2
    Membre expérimenté
    Avatar de Alain_72
    Inscrit en
    Août 2004
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 180
    Par défaut
    Citation Envoyé par Lotendan Voir le message
    Mais malheureusement ça ne marche pas ...
    Si quelqu'un pouvait m'aider Svp,
    Merci d'avance

    Lotendan
    Bonjour lotendan,
    Ci-dessous la bonne façon de coder en wxPython...
    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    #! /usr/bin/env python
    #-*- coding: utf-8 -*-
     
    import wx
     
    u'''Il est primordial de s habituer à travailler en objet pour conserver
    toute la puissance et l efficacité de wxPython'''
     
    class MaFenetre(wx.Frame):
     
        u''' Fenêtre principale de l application.
        A noter que toutes mes chaines de caractères commencent par la lettre
        u située avant le délimiteur, ce qui garantit une interprétation unicode
        par python.
        Associée à la deuxième ligne du script donnant à python l encoge utilisé,
        ici utf-8, et à l enregistrement du fichier dans le même encodage, je suis sûr
        que ce script fonctionnera toujours quel que soit l encodage local de l OS.'''
        def __init__(self):
            wx.Frame.__init__(self, None,-1,title=u"Paramètres Quizz",size=(520,300),style=wx.DEFAULT_FRAME_STYLE)
            self.nbk=wx.Notebook(self,-1,size=self.GetClientSize())
     
            pan1=wx.Panel(self.nbk,-1)
            pan2=wx.Panel(self.nbk,-1)
     
            sizer1=wx.GridBagSizer(10,10)
            sizer2=wx.GridBagSizer(10,10)
     
            #Page 1:
            u'''J ai ajoute du texte dans les wx.StaticText
            pour prouver que ca fonctionne'''
     
            static1=wx.StaticText(pan1,-1, u"Onglet 1, position (1, 1)")
            sizer1.Add(static1,pos=(1,1))
     
            static2=wx.StaticText(pan1,-1, u"Onglet 1, position (2, 1)")
            sizer1.Add(static2,pos=(2,1))
     
            static3=wx.StaticText(pan1,-1, u"Onglet 1, position (1, 2)")
            sizer1.Add(static3,pos=(1,2))
     
            pan1.SetSizer(sizer1)
            pan1.SetAutoLayout(True)
     
            self.nbk.AddPage(pan1,"1er onglet")
     
            #Page 2:
            static4=wx.StaticText(pan2,-1, u"Onglet 2, position (1, 1)")
            sizer2.Add(static4,pos=(1,1))
     
            static5=wx.StaticText(pan2,-1, u"Onglet 2, position (2, 1)")
            sizer2.Add(static5,pos=(2,1))
     
            static6=wx.StaticText(pan2,-1, u"Onglet 2, position (1, 2)")
            sizer2.Add(static6,pos=(1,2))
     
            pan2.SetSizer(sizer2)
            pan2.SetAutoLayout(True)
     
            self.nbk.AddPage(pan2,"2eme onglet")
     
            u'''Pour que l application se ferme correctement, toujours
            prévoir la destruction de la fenêtre principale lors de sa
            fermeture, en interceptant l évènement wx.EVT_CLOSE'''
     
            self.Bind(wx.EVT_CLOSE, self.OnClose)
     
            u'''Intercepter l évènement wx.EVT_SIZE de la fenêtre pour
            adapter la taille des éléments non gérés par des sizers (ici
            le notebook) lorsque la taille de la fenêtre est modifiée.'''
     
            self.Bind(wx.EVT_SIZE, self.OnSize)
     
        def OnClose(self, event):
            self.Destroy()
     
        def OnSize(self, event):
            self.nbk.SetSize(self.GetClientSize())
     
    class MonApp(wx.App):
     
        u'''En wxPython il y a obligation de créer une instance de wx.App
        pour pouvoir utiliser les wx.Widgets. On y déclare notre fenêtre
        comme étant la fenêtre principale de l application (wx.App.SetTopWindow())'''
     
        def OnInit(self):
            top3 = MaFenetre()
            top3.Show()
            self.SetTopWindow(top3)
            return True
     
    app = MonApp() #instance de l'application
     
    u'''On lance la boucle de gestion des évènements de wxPython
    qui ne s arrêtera qu à la destruction de la fenêtre principale'''
     
    app.MainLoop()

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 45
    Par défaut
    Wouah

    C'est exactement ce qu'il me fallait, merci Allain 72 pour ton travail

    En plus de ça tu réponds à une autre de mes questions, j'avais toujours des problèmes avec l'encodage, maintenant je crois que ça ira mieux ^^

    Merci encore
    Bye ^^

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

Discussions similaires

  1. Notebook - Problème de switch_page
    Par Anium dans le forum GTK+
    Réponses: 0
    Dernier message: 08/10/2008, 13h53
  2. Problème sizer - décalage
    Par micromich dans le forum wxWidgets
    Réponses: 2
    Dernier message: 07/08/2008, 18h13
  3. Problème d'affichage de Notebook
    Par metalamania dans le forum wxPython
    Réponses: 1
    Dernier message: 04/02/2008, 20h32
  4. [Boa] Boa Constructor ne démarre pas : Notebook Sizer ?
    Par Papy Octet dans le forum wxPython
    Réponses: 2
    Dernier message: 16/10/2007, 10h09
  5. Problème de disposition (layout, sizer ..)
    Par Grummfy dans le forum wxPython
    Réponses: 2
    Dernier message: 08/09/2007, 15h48

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