Partage
  • Partager sur Facebook
  • Partager sur Twitter

[wx] Séparer la fenêtre en deux parties

Sujet résolu
    19 novembre 2011 à 12:24:26

    Bonjour à tous,

    je commence à utiliser wx pour créer une interface GUI et j'aimerais séparer ma fenêtre en deux parties : la partie principale qui occuperait les 3/4 de la hauteur et une timeline qui occuperait le quart restant en bas. Évidemment, toute la largeur disponible doit être occupée et en cas de redimensionnement de la fenêtre, il faut que ça suive.

    Ça fait donc une demi-heure que je parcours en long en large et en travers les différents types de Sizer. Mais je n'arrive toujours pas, ne serait-ce qu'à occuper toute la largeur avec des hauteurs égales.

    Voici ce que j'ai fait :

    class MainWindow(wx.Frame):
        
        def __init__(self, parent, title):
            wx.Frame.__init__(
                self,
                parent,
                title = title,
                size = (800, 600))
    
            self.Center()
            self.Maximize(True)
            self.CreateStatusBar()
            
            """ ... """
    
            # Main Frame ###
    
            mainFrame = MainFrame(self, "MainFrame")
    
            # Timeline Frame ###
    
            timeline = Timeline(self)
    
            # Sizer ###
    
            sizer = wx.BoxSizer(wx.VERTICAL)
    
            sizer.Add(mainFrame)
            sizer.Add(timeline)
    
            self.SetSizer(sizer)
            sizer.SetSizeHints(self)
    
            self.Show(True)
    
    class Timeline(wx.Panel):
        
        def __init__(self, parent):
            wx.Panel.__init__(
                self,
                parent,
                name = "Timeline",
                style = wx.TAB_TRAVERSAL [ wx.RAISED_BORDER)
    
            self.SetBackgroundColour('#0000FF')
    
    class MainFrame(wx.Panel):
        
        def __init__(self, parent, name):
            wx.Panel.__init__(
                self,
                parent,
                name = name,
                style = wx.TAB_TRAVERSAL [ wx.RAISED_BORDER)
    
            self.SetBackgroundColour('#000000')
    


    J'obtiens, en haut à gauche de ma fenêtre, un carré noir d'environs 15px et juste en dessous, un carré bleu de la même taille.

    Quelqu'un sait-il comment découper correctement sa fenêtre avec wx ?

    Merci d'avance.

    Edit. J'ai fini par trouver finalement, c'était tout con il fallait juste ajouter une proportion et le drapeau EXPAND :
    sizer = wx.BoxSizer(wx.VERTICAL)
    sizer.Add(mainFrame, 3, flag = wx.EXPAND)
    sizer.Add(timeline, 1, flag = wx.EXPAND)
    
    </span>
    • Partager sur Facebook
    • Partager sur Twitter
    Envie de mettre les mains dans le cambouis ? Passez à Funtoo GNU/Linux. DO IT!

    [wx] Séparer la fenêtre en deux parties

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown