Pergunta

Estou tentando um layout simples e o painel dividido por uma SplitterWindow não se expande para preencher toda a área, o que eu quero é isso:

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

O código real é:

    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()

Defino a cor do painel diferente e ele está usando toda a área, para que o problema seja apenas o SplitterWindow dentro do painel, não dentro do BoxSizer.

Alguma idéia sobre por que não está funcionando? Obrigado!

Foi útil?

Solução

O painel provavelmente está se expandindo, mas o ScrolledWindow dentro do painel não é, porque você não está usando um Sizer para o painel, apenas o quadro.

Você também pode tentar apenas fazer com que o SplitterWindow seja filho do quadro, sem o painel.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top