Question

J'essaie une disposition simple et le panneau divisé par une fenêtre SplitterWindow ne se développe pas pour remplir toute la zone. Ce que je veux, c'est ceci:

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

Le code actuel est:

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

La couleur du panneau est différente et utilise en fait toute la zone. Le problème ne concerne donc que SplitterWindow dans le panneau, pas dans BoxSizer.

Des idées sur les raisons pour lesquelles cela ne fonctionne pas? Merci!

Était-ce utile?

La solution

Le Panel est probablement en expansion, mais la ScrolledWindow dans le Panel ne l’est pas, car vous n’utilisez pas de dimenseur pour le Panel, mais uniquement le cadre.

Vous pouvez également essayer simplement de faire de SplitterWindow un enfant du cadre, sans le panneau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top