Seite 1 von 1

SplitWindow nochmals splitten

Verfasst: Freitag 3. September 2010, 09:36
von Francesco
Hallo, ich habe ein Problem mit Splitterwindows:

Code: Alles auswählen

#!/usr/bin/env python

import wx
import wx.stc

class MySplitter(wx.SplitterWindow):
    def __init__(self, parent, ID):
        wx.SplitterWindow.__init__(self, parent, ID,
                                   style = wx.SP_LIVE_UPDATE
                                   )


class StcHistory(wx.stc.StyledTextCtrl):
    def __init__(self, parent):
        wx.stc.StyledTextCtrl.__init__(self, parent, -1)


class StcMemory(wx.stc.StyledTextCtrl):
    def __init__(self, parent):
        wx.stc.StyledTextCtrl.__init__(self, parent, -1)


class ExtFrame(wx.Frame):
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)
        self.splitter = MySplitter(self, -1)

        self.stcmemory = StcMemory(self.splitter)
        self.panel = wx.Panel(self.splitter)
        self.splitter.SetMinimumPaneSize(20)
        self.splitter.SplitHorizontally(self.stcmemory, self.panel, -100)

        self.subsplitter = MySplitter(self.panel, -1)
        self.stchistory = StcHistory(self.subsplitter)
        self.subpanel = wx.Panel(self.subsplitter)
        self.subsplitter.SetMinimumPaneSize(20)
        self.subsplitter.SplitVertically(self.stchistory, self.subpanel, -100)


def main():
    app = wx.App(0)
    frame = ExtFrame(None, -1, "wxExt")
    frame.Show(True)
    app.MainLoop()

if __name__ == "__main__":
    main()
Das zweite Window soll praktisch nochmals gesplittet werden. Irgendwie wird mir das nicht resized, denn da ist links oben etwas komprimiertes zu sehen.

wxgtk, 2.8.10.1

Re: SplitWindow nochmals splitten

Verfasst: Freitag 3. September 2010, 09:48
von Francesco
Anscheinend wird das Panel erst auf die richtige Größe gebracht. Ich weiss nicht, sieht für mich eher nach einen Workaround als einer Lösung aus:
aufgeteilt und wx.CallAfter(self.init_subsplitter) aufgerufen, dann klappts.


Nein, geht leider auch nicht.

Vielleicht kann man das nicht kaskadieren und ich sollte einmal einen Multisplitter verwenden, aber nein, das muss doch so auch gehen; Problem scheint dabei das self.panel zu sein.

Re: SplitWindow nochmals splitten

Verfasst: Freitag 3. September 2010, 14:14
von Francesco
Nur zur Info: ich habe zwischenzeitlich eine Lösung in der wxpy list bekommen. Falls es jmd. interessiert (Lösung mit Sizers):

http://groups.google.com/group/wxpython ... ee87e6c4fc