2011-11-26 44 views
0

我想構建一個文件選擇器,使用2 GenericDirCtrl,它顯示在它們下面的選定的direcotry中的文件。我的問題是將分離器窗口放在框架的子框架中,並將包含控制器的面板添加到分離器窗口或使用框架的面板子框架將分離器窗口嵌入到面板中?wxPython分離器窗口和麪板

回答

0

當我使用SplitterWindow時,我把它放在框架上,並給每一面各自的面板。但你應該可以做到:框架,面板,SplitterWindow一樣容易。

這裏有一個通用的例子:

import wx 
import wx.grid as gridlib 

######################################################################## 
class LeftPanel(wx.Panel): 
    """""" 

    #---------------------------------------------------------------------- 
    def __init__(self, parent): 
     """Constructor""" 
     wx.Panel.__init__(self, parent=parent) 

     grid = gridlib.Grid(self) 
     grid.CreateGrid(25,12) 

     sizer = wx.BoxSizer(wx.VERTICAL) 
     sizer.Add(grid, 0, wx.EXPAND) 
     self.SetSizer(sizer) 

######################################################################## 
class RightPanel(wx.Panel): 
    """""" 

    #---------------------------------------------------------------------- 
    def __init__(self, parent): 
     """Constructor""" 
     wx.Panel.__init__(self, parent=parent) 
     txt = wx.TextCtrl(self) 


class MyForm(wx.Frame): 

    def __init__(self): 
     wx.Frame.__init__(self, None, wx.ID_ANY, "Splitter Tutorial") 

     splitter = wx.SplitterWindow(self) 
     leftP = LeftPanel(splitter) 
     rightP = RightPanel(splitter) 

     # split the window 
     splitter.SplitVertically(leftP, rightP) 
     splitter.SetMinimumPaneSize(20) 

     sizer = wx.BoxSizer(wx.VERTICAL) 
     sizer.Add(splitter, 1, wx.EXPAND) 
     self.SetSizer(sizer) 

# Run the program 
if __name__ == "__main__": 
    app = wx.App(False) 
    frame = MyForm() 
    frame.Show() 
    app.MainLoop() 
+0

感謝邁克,我已經使用了框架,分離器,面板,但幀面板分離器似乎有更大的靈活性。感謝您的幫助,我會試一試。 – user1032355

+0

@Mike Driscoll這不適用。 – alwbtc