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 :

Aligner les widgets


Sujet :

wxPython

  1. #1
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut Aligner les widgets
    Bonsoir,

    Cela va paraitre peut-être simple pour certain, mais là ça fait un moment que j'essaye de résoudre mon problème.

    Je cherche la méthode pour aligner un wx.StaticText avec un wx.TextCtrl soit par le haut, par le bas ou par le milieu.

    D'avance merci de votre aide

    Jiyuu
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  2. #2
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    avec un wx.BoxSizer(wx.VERTICAL ou wx.HORIZONTAL) ?

    regarde les démos disponibles sur le site officiel ou cette source ( http://guigui.developpez.com/sources/pyReversi)

  3. #3
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    J'ai consulté quelques démos.
    Je ne pensai pas qu'il était possible d'utiliser un wx.BoxSizer pour autre chose qu'un wx.Panel.

    Je me suis donc inspiré de ce que j'ai lu pour l'utilisation de wx.BoxSizer ainsi que des démos... Mais ça fonctionne pas.

    Voici mon code:
    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
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    #-*- coding:utf-8 -*-
     
    import wx
     
    ID_DEBIT = 100
    ID_VISCO = 101
    ID_HMT = 102
     
    class Root(wx.Frame):
        def __init__(self, titre):
            wx.Frame.__init__(self, None, -1, title = titre,
                              size = (500,200))
     
    ##---------------
    ## Création des barres de menus et status
    ##---------------
     
            menuFichier = wx.Menu()
            menuFichier.Append(wx.ID_OPEN, "Ouvrir", "Ouvrir un projet")
            menuFichier.Append(wx.ID_SAVE, "Sauvegarder", "Sauvegarder un projet")
            menuFichier.AppendSeparator()
            menuFichier.Append(wx.ID_EXIT, "Quitter", "Quitter l'application")
     
            menuConversion = wx.Menu()
            menuConversion.Append(ID_DEBIT, u"&Débit", u"Convertir un débit")
            menuConversion.Append(ID_VISCO, "Visco", u"Convertir une viscosité")
            menuConversion.Append(ID_HMT, "HMT", u"Convertir une HMT")
     
            menuBarre = wx.MenuBar()
            menuBarre.Append(menuFichier, "Fichier")
            menuBarre.Append(menuConversion, "Module de Conversion")
            self.SetMenuBar(menuBarre)
     
            self.status = wx.StatusBar(self, -1)
            self.status.SetFieldsCount(2)
            self.status.SetStatusWidths([-1,-1])
            self.SetStatusBar(self.status)
     
    ##---------------
    ## Création des Widgets
    ##---------------
     
            frameSizer = wx.BoxSizer(wx.VERTICAL)
            align = wx.BoxSizer(wx.HORIZONTAL)
     
            panelSizer0 = wx.GridBagSizer(5,5)
            panelSizer = wx.GridBagSizer(5,5)
     
            conteneurTitre = wx.Panel(self, -1)
            conteneur0 = wx.Panel(self, -1)
     
            panelTitre = wx.StaticText(conteneurTitre, -1, u"CARACTERISTIQUES FLUIDE")
     
            txt0 = wx.StaticText(conteneur0, -1,
                                 u"Débit", style = wx.ALIGN_CENTRE)
            txt1 = wx.StaticText(conteneur0, -1,
                                 "Fluide", style = wx.ALIGN_CENTRE)
            txt2 = wx.StaticText(conteneur0, -1,
                                 u"Viscosité", style = wx.ALIGN_CENTRE)
            txt3 = wx.StaticText(conteneur0, -1,
                                 u"Densité", style = wx.ALIGN_CENTRE)
     
            entree0 = wx.TextCtrl(conteneur0, -1, size = (50,-1))
            entree1 = wx.TextCtrl(conteneur0, -1, size = (50,-1))
     
            panelSizer0.Add(panelTitre, (0,1))
     
            panelSizer.Add(txt0, (0,1))
            panelSizer.Add(txt1, (1,1))
            panelSizer.Add(txt2, (2,1))
            panelSizer.Add(txt3, (3,1))
     
            panelSizer.Add(entree0, (0,2))
            panelSizer.Add(entree1, (1,2))
     
     
            conteneurTitre.SetSizer(panelSizer0)
            conteneur0.SetSizer(panelSizer)
     
            frameSizer = wx.BoxSizer(wx.VERTICAL)
            align = wx.BoxSizer(wx.HORIZONTAL)
     
            align.Add(txt0, 0, wx.ALL)
            align.Add(entree0, 0, wx.ALL)
            self.SetSizer(align)
     
            frameSizer.Add(conteneurTitre, 0, wx.EXPAND)
            frameSizer.Add(conteneur0, 0, wx.EXPAND)
            self.SetSizer(frameSizer)
     
     
     
    ##---------------
    ## Création des Méthodes
    ##---------------    
     
            wx.EVT_MENU(self, wx.ID_OPEN, self.OnOpen)
            wx.EVT_MENU(self, wx.ID_SAVE, self.OnSave)
            wx.EVT_MENU(self, wx.ID_EXIT, self.OnExit)
            wx.EVT_MENU(self, ID_DEBIT, self.Debit)
            wx.EVT_MENU(self, ID_VISCO, self.Visco)
            wx.EVT_MENU(self, ID_HMT, self.Hmt)
            wx.EVT_BUTTON(self, 200, self.OnExit)
     
     
        def OnOpen(self, evt):
            self.Destroy()
     
        def OnSave(self, evt):
            self.Destroy()
     
        def OnExit(self, evt):
            self.Destroy()
     
        def Debit(self, evt):
            self.Destroy()
     
        def Visco(self, evt):
            self.Destroy()
     
        def Hmt(self, evt):
            self.Destroy()
     
     
     
    class MonApp(wx.App):
        def OnInit(self):
            fen = Root('MonApplic')
            fen.Show(True)
            self.SetTopWindow(fen)
            return True
     
    app = MonApp()
    app.MainLoop()
    Je continue à regarder mais si tu peux m'aiguiller un peu plus ça serait sympa.

    Bonne soirée
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  4. #4
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    J'ai trouvé une solution en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    panelSizer = wx.FlexGridSizer(cols=2, hgap=5, vgap=5)
    dans mon cas.

    Peut-être que ce que je souhaite faire n'est pas faisable avec un wx.GridBagSizer...????
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

Discussions similaires

  1. Aligner les cases d'un composite widget excel fait à base de flexTable
    Par power of mind dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 23/06/2009, 20h46
  2. comment modifier les widgets dans une fenètre??
    Par afrikha dans le forum GTK+ avec C & C++
    Réponses: 6
    Dernier message: 14/10/2005, 14h48
  3. Réponses: 4
    Dernier message: 01/10/2005, 13h37
  4. [CSS]Aligner les div suivant la résolutation d'écran
    Par nebule dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 09/09/2005, 11h00
  5. [MFC][Toolbar] Aligner les toolbars
    Par 6psyk9 dans le forum MFC
    Réponses: 3
    Dernier message: 17/05/2004, 21h58

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