ich habe mal wieder ein Problem, was ich nicht gelöst bekomme.
Unten seht ihr meinen Code, es handelt sich hierbei um ein SplitterWindow sowie ein Panel links und ein Panel rechts. Soweit klappt auch alles, mein Ziel ist es, sobald sich die Größe des Frames ändert, das sich auch die Größe der Panel ändert bzw. die Position des Sash(Trennstrich) anpasst und in die Mitte gerückt wird. Ohne wx.EVT_SIZE funktioniert alles aber sobald ich es an das Frame binde, verkleinert sich die Größe von panel1. Was kann das sein? Habt ihr eine Idee?
MfG Schaf220
Code: Alles auswählen
#!/usr/bin/python
import wx
class SizeEvent(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title)
#self.Bind(wx.EVT_SIZE, self.OnSize) # Wenn diese Zeile auskommentiert wird, geht das Programm
# Wenn nicht, ist das Fenster für Panel 1 ganz klein und bleibt auch so
splitter = wx.SplitterWindow(self, -1, style = wx.SIMPLE_BORDER)
self.panel1 = wx.Panel(splitter, -1)
self.panel2 = wx.Panel(splitter, -1)
self.panel1.SetBackgroundColour(wx.RED)
splitter.SplitVertically(self.panel1, self.panel2, self.GetSize()[0]/2)
self.Centre()
self.Show(True)
def OnSize(self, event):
actSize = event.GetSize()
xPos = int(actSize[0])
yPos = int(actSize[1])
#print yPos, type(yPos)
self.panel1.SetSize(wx.Size(xPos/2,yPos)) # soll Groesse des Panels richten
app = wx.App()
SizeEvent(None, 1, 'sizeevent.py')
app.MainLoop()