calo hat geschrieben:Da ich GUI-Neuling bin, verstehe ich nicht weshalb das TextCtrl-Element in Zeile 6, nicht auf das gesamte Panel ausgebreitet.
Hi Calo!
Willkommen im Python-Forum!
Die Sache ist ganz einfach.
Nur das erste Widget, welches
auf ein Frame gelegt wird, wird automatisch auf die volle Größe des
Frame-Innenraums vergrößert.
Du hast ein TextCtrl auf ein Panel gelegt und dich nicht selbst darum gekümmert, dass es sich an die Größe des Panels anpasst.
Hier ein funktionierendes Beispiel:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import wx
wx.SetDefaultPyEncoding("iso-8859-1")
class EditPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
vbox = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(vbox)
t = wx.TextCtrl(self, 1, "", style = wx.TE_MULTILINE)
vbox.Add(t, proportion = 1, flag = wx.ALL | wx.EXPAND, border = 5)
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title = "Simple Notebook Example")
p = wx.Panel(self)
vbox = wx.BoxSizer(wx.VERTICAL)
p.SetSizer(vbox)
nb = wx.Notebook(p)
vbox.Add(nb, 1, wx.ALL | wx.EXPAND, border = 5)
edit_panel1 = EditPanel(nb)
nb.AddPage(edit_panel1, "Edit 1")
edit_panel2 = EditPanel(nb)
nb.AddPage(edit_panel2, "Edit 2")
if __name__ == "__main__":
app = wx.App()
f = MainFrame()
f.Center()
f.Show()
app.MainLoop()
mfg
Gerold
