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 de disposition (layout, sizer ..)


Sujet :

wxPython

  1. #1
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2005
    Messages : 87
    Par défaut Problème de disposition (layout, sizer ..)
    Hello,
    voila je vient de commencer le python,
    j'ai donc réalisé une petit application graphique utilisant wxPython.

    Cependant, j'ai des problème pour le layout, sizer ... bref d'affichage graphique ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    fen = Fenetre.Fenetre("FSB2 faiseur d'install de mods")
    fen.Show(True)
    self.SetTopWindow(fen)
    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
     
     
    import wx
    import menu
    import divers
    from Diff.fsb2 import fsb2
     
    class Fenetre(wx.Frame):
    # on défini une fenetres avec 11 champs
        def __init__(self, titre):
            wx.Frame.__init__(self, None, -1, title = titre)
     
            wx.EVT_SIZE(self, self.OnSize)
     
            panelSizer = wx.FlexGridSizer(6, 2, 0, 0)
            panelSizer.SetFlexibleDirection(wx.BOTH)
            conteneur = wx.Panel(self, -1)
            conteneur.SetSizer(panelSizer)
     
            self.mod_name = wx.TextCtrl(conteneur, -1, "nom du mods")
            self.mod_author = wx.TextCtrl(conteneur, -1, "votre nom")
            self.mod_author_email = wx.TextCtrl(conteneur, -1, "votre email")
            self.mod_author_website = wx.TextCtrl(conteneur, -1, "votre site web, blog, ...")
            self.mod_version = wx.TextCtrl(conteneur, -1, "version du mods")
            self.mod_description = wx.TextCtrl(conteneur, -1, "description du mods", style = wx.TE_MULTILINE)
            self.mod_rep_from = wx.TextCtrl(conteneur, -1, "Répertoire clean")
            self.mod_rep_to = wx.TextCtrl(conteneur, -1, "Répertoire avec le mods installé")
            self.mod_after_sql = wx.TextCtrl(conteneur, -1, "Requête sql à exécuter après installation")
            self.mod_after_file = wx.TextCtrl(conteneur, -1, "Fichier à exécuter après installation")
            self.btn_valide = wx.Button(conteneur, -1, "Valider")
     
            panelSizer.Add(self.mod_name, -1, wx.ALIGN_CENTER)
            panelSizer.Add(self.mod_author, 0, wx.ALIGN_CENTER)
            panelSizer.Add(self.mod_author_email, -1, wx.EXPAND)
            panelSizer.Add(self.mod_author_website, -1, wx.CENTER)
            panelSizer.Add(self.mod_version, 0, wx.CENTER)
            panelSizer.Add(self.mod_rep_from, 0, wx.CENTER)
            panelSizer.Add(self.mod_rep_to, 0, wx.CENTER)
            panelSizer.Add(self.mod_description, 0, wx.CENTER)
            panelSizer.Add(self.mod_after_sql, 0, wx.CENTER)
            panelSizer.Add(self.mod_after_file, 0, wx.CENTER)
            panelSizer.Add(self.btn_valide, 0, wx.CENTER)
     
            frameSizer = wx.BoxSizer(wx.CENTER)
            frameSizer.Add(conteneur, -1, wx.EXPAND)
     
            self.SetSizer(frameSizer)
            frameSizer.SetSizeHints(self)
     
        def OnSize(self, evt):
            self.SetTitle(self.titre + " %s" % evt.GetSize())
            evt.Skip()
    j'ai mis l'essentiel, si vous voulez tout : http://labs.grummfy.com/python/src.tar.bz2

    merci

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4
    Par défaut
    Salut, moi aussi je débute donc ma contribution sera modeste.
    J'ai eu les mêmes problèmes que toi avec le FlexGridSizer: je n'arrive pas à le faire "s'étendre". Par contre j'ai eu un mieux en utilisant GridBagSizer, je te mets le code que j'ai utilisé.
    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
    # -*- coding: UTF-8 -*-
    import wx
    app = wx.App()
    panelSizer = wx.GridBagSizer()
     
    conteneur = wx.Frame(None)
     
     
    mod_name = wx.TextCtrl(conteneur, -1, "nom du mods")
    mod_author = wx.TextCtrl(conteneur, -1, "votre nom")
    mod_author_email = wx.TextCtrl(conteneur, -1, "votre email")
    mod_author_website = wx.TextCtrl(conteneur, -1, "votre site web, blog, ...")
    mod_version = wx.TextCtrl(conteneur, -1, "version du mods")
    mod_description = wx.TextCtrl(conteneur, -1, "description du mods", style = wx.TE_MULTILINE)
    mod_rep_from = wx.TextCtrl(conteneur, -1, "Répertoire clean")
    mod_rep_to = wx.TextCtrl(conteneur, -1, "Répertoire avec le mods installé")
    mod_after_sql = wx.TextCtrl(conteneur, -1, "Requête sql à exécuter après installation")
    mod_after_file = wx.TextCtrl(conteneur, -1, "Fichier à exécuter après installation")
    btn_valide = wx.Button(conteneur, -1, "Valider")
     
    panelSizer.Add(mod_name, (0,0), (1,1), wx.ALIGN_CENTER)
    panelSizer.Add(mod_author, (0,1), (1,1), wx.ALIGN_CENTER)
    panelSizer.Add(mod_author_email, (1,0), (1,1), wx.EXPAND)
    panelSizer.Add(mod_author_website, (1,1), (1,1), wx.CENTER)
    panelSizer.Add(mod_version, (2,0), (1,1), wx.CENTER)
    panelSizer.Add(mod_rep_from, (2,1), (1,1), wx.CENTER)
    panelSizer.Add(mod_rep_to, (3,0), (1,1), wx.CENTER)
    panelSizer.Add(mod_description, (3,1), (1,1), wx.CENTER)
    panelSizer.Add(mod_after_sql, (4,0), (1,1), wx.CENTER)
    panelSizer.Add(mod_after_file, (4,1), (1,1), wx.CENTER)
    panelSizer.Add(btn_valide, (5,0), (1,1), wx.CENTER)
    panelSizer.AddGrowableCol(0)
    panelSizer.AddGrowableCol(1)
    conteneur.SetSizerAndFit(panelSizer)
    conteneur.Show()
    app.MainLoop()
    et ma source d'inspiration:
    http://sebsauvage.net/python/gui/index_fr.html

    J'espère que cela te donnera de nouvelles idées...

  3. #3
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2005
    Messages : 87
    Par défaut
    merci

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

Discussions similaires

  1. Problème de disposition interne à un CardLayout
    Par franklin626 dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 06/05/2008, 14h19
  2. Problème d'affichage : Layout + paint
    Par utoria dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 05/11/2007, 23h57
  3. Problème de disposition avec un CardLayout
    Par Invité dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 25/07/2007, 09h25
  4. [Struts-Layout] Problème Javascript dans layout:treeview
    Par lili2704 dans le forum Struts 1
    Réponses: 4
    Dernier message: 14/06/2007, 16h40
  5. problème avec struts-layout
    Par khayri dans le forum Struts 1
    Réponses: 1
    Dernier message: 16/04/2007, 10h36

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