2009-06-26 57 views
3

我想一个简单的布局和面板由SplitterWindow分不会扩展到填满整个区域内扩张,我想是这样的:wxPython的SplitterWindow没有一个面板

[button] <= (fixed size) 
---------        
TEXT AREA       } 
~~~~~~~~~ <= (this is the splitter) } this is a panel 
TEXT AREA       } 

实际代码:

import wx 
    app = wx.App() 
    frame = wx.Frame(None, wx.ID_ANY, "Register Translator") 

    parseButton = wx.Button(frame, label="Parse") 
    panel = wx.Panel(frame) 
    panel.SetBackgroundColour("BLUE") 
    splitter = wx.SplitterWindow(panel) 
    inputArea = wx.TextCtrl(splitter, style=wx.TE_MULTILINE) 
    outputArea = wx.TextCtrl(splitter, style=wx.TE_MULTILINE) 
    splitter.SplitHorizontally(inputArea, outputArea) 

    sizer=wx.BoxSizer(wx.VERTICAL) 
    sizer.Add(parseButton, 0, wx.ALIGN_CENTER) 
    sizer.Add(panel, 1, wx.EXPAND | wx.ALL) 

    frame.SetSizerAndFit(sizer) 
    frame.SetAutoLayout(1) 

    frame.Show(True) 
    app.MainLoop() 

我设置面板的颜色不同,它使用整个区域实际上,这样的问题仅仅是面板中的SplitterWindow,而不是BoxSizer内。

有关为什么它不起作用的任何想法?谢谢!

回答

4

面板可能正在扩展,但面板内的ScrolledWindow不是,因为您没有使用面板的sizer,只有框架。

你也可以尝试让SplitterWindow成为框架的一个小孩,没有面板。

+0

谢谢,我已经添加了面板的第二个尺寸,并添加了分离器到它,它的工作原理......但我不明白为什么它在框架中工作,无需sizer:-s – fortran 2009-06-26 13:50:20