2011-08-19 2 views
0

Je voudrais placer TreeCtrl des deux côtés de SplitterWindow. Et, bien sûr, TreeCtrl devrait être expansé en tant que taille de la fenêtre.wxPython, en utilisant SplitterWindow

splitter = wx.SplitterWindow(self, style = wx.SP_BORDER) 

leftPanel = wx.Panel(splitter) 
rightPanel = wx.Panel(splitter) 

leftSizer = wx.BoxSizer(wx.VERTICAL) 
rightSizer = wx.BoxSizer(wx.VERTICAL) 

localTree = wx.TreeCtrl(leftPanel) 
flickrTree = wx.TreeCtrl(rightPanel) 

leftSizer.Add(localTree, flag = wx.EXPAND | wx.ALIGN_CENTER) 
rightSizer.Add(flickrTree, flag = wx.EXPAND) 

splitter.SplitVertically(leftPanel, rightPanel) 
leftPanel.SetSizer(leftSizer) 
leftPanel.SetAutoLayout(1) 
leftSizer.Fit(leftPanel) 

J'ai essayé le code ci-dessus, mais la hauteur de TreeCtrl n'est pas développée comme prévu.

Qu'est-ce qui ne va pas?

Répondre

1

Les œuvres suivantes pour moi:

splitter = wx.SplitterWindow(self, style = wx.SP_BORDER) 
leftPanel = wx.Panel(splitter) 
rightPanel = wx.Panel(splitter) 

localTree = wx.TreeCtrl(leftPanel) 
leftSizer = wx.BoxSizer(wx.VERTICAL) 
leftSizer.Add(localTree, 1, wx.EXPAND | wx.ALL) 
leftPanel.SetSizer(leftSizer) 

flickrTree = wx.TreeCtrl(rightPanel) 
rightSizer = wx.BoxSizer(wx.VERTICAL) 
rightSizer.Add(flickrTree, 1, wx.EXPAND | wx.ALL) 
rightPanel.SetSizer(rightSizer) 

splitter.SplitVertically(leftPanel, rightPanel) 

L'essentiel est de définir la valeur de proportion lors de l'ajout du TreeCtrl au BoxSizer, à savoir:

leftSizer.Add (localTree, 1, WX. EXPANSION | wx.ALIGN_CENTER)

plutôt que:

leftSizer.Add (localTree, drapeau = wx.EXPAND | wx.ALIGN_CENTER)

Sinon, la valeur par défaut est zéro.

Questions connexes