Hi Jens,
ich kann nur raten: Du hast zwei BoxSizer, die vielleicht nicht richtig angesprochen werden (Objekte mit gleichen Namen, weil der Parser schläft?). Jedenfalls wenn ich eine ganz einfach Applikation mache:
Code: Alles auswählen
import wx
class mainFrame(wx.Frame):
def __init__(self,parent,id,title):
wx.Frame.__init__(self,None,-1,"Dein Frame")
p = wx.Panel(self,-1)
sizer = self.sizer = wx.BoxSizer(wx.VERTICAL)
TextField = wx.TextCtrl(p,-1,"bla bla.\n\n",size=(539,150),style=wx.TE_MULTILINE)
self.TextField = TextField
sizer.Add(TextField,flag=wx.EXPAND)
buttons = wx.BoxSizer(wx.HORIZONTAL)
buttons.Add((10,-1),0)
b = wx.Button(self,wx.ID_OK,"Okay")
b.SetDefault()
buttons.Add(b,0,wx.ALL,10)
buttons.Add(wx.Button(self,wx.ID_CANCEL,"Cancel"),0,wx.ALL,10)
sizer.Add(buttons,wx.GROW|wx.ALL,25)
self.Layout()
p.SetSizerAndFit(sizer)
self.SetClientSize(p.GetSize())
class TestApp(wx.App):
def OnInit(self):
frame = mainFrame(None,-1,"DeinFrame")
frame.Show(True)
self.SetTopWindow(frame)
return True
app = TestApp(0)
app.MainLoop()
(mit wx 2.5.8), dann klappt alles reibungslos. Gut, an dem Layout kann man natürlich feilen ... ;-)
Vielleicht solltest Du Dich an die Macher von wxGlade wenden? Oder vielleicht ist auch der Punkt gekommen, wo die wx Mailingliste angerufen werden sollte?
Oder Du kannst zunächst einmal versuchen nach und nach Elemente zu dem Gerüst hier oben hinzuzupacken und schauen, wo das Problem auftritt.
Gruß,
Christian