ich versuche derzeit mehrere Widgets auf einem Frame zu verteilen. Die Anordnung ist nicht besonders kompliziert. Aber ich bekomme diese BoxSizer nicht vernünftig verschachtelt. Was mache ich da Falsch?
Code: Alles auswählen
import wx
wx.SetDefaultPyEncoding("iso-8859-1")
class MyToolBar(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, wx.Size(350, 250))
vbox1 = wx.BoxSizer(wx.VERTICAL)
# vbox2 = wx.BoxSizer(wx.VERTICAL)
hbox = wx.BoxSizer(wx.HORIZONTAL)
img_new = wx.Image(r'icon\stock_new.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap()
img_open = wx.Image(r'icon\stock_open.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap()
img_save = wx.Image(r'icon\stock_save.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap()
img_exit = wx.Image(r'icon\stock_exit.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap()
toolbar = wx.ToolBar(self, wx.ID_ANY, style=wx.TB_HORIZONTAL | wx.NO_BORDER)
toolbar.SetToolBitmapSize(size=(24,24))
toolbar.AddSimpleTool(wx.ID_ANY, img_new, 'New', '')
toolbar.AddSimpleTool(wx.ID_ANY, img_open, 'Open', '')
toolbar.AddSimpleTool(wx.ID_ANY, img_save, 'Save', '')
toolbar.AddSeparator()
toolbar.AddSimpleTool(wx.ID_ANY, img_exit, 'Exit', '')
toolbar.Realize()
text = wx.TextCtrl(self, wx.ID_ANY, '', style=wx.TE_MULTILINE)
# button1 = wx.Button(self, wx.ID_ANY, "text-1")
# button2 = wx.Button(self, wx.ID_ANY, "text-2")
# vbox2.Add(button1, 0)
# vbox2.Add(button2, 0)
# hbox.Add(vbox2, 1)
# self.SetSizer(vbox2)
vbox1.Add(toolbar)
hbox.Add(text, 1, wx.ALL|wx.EXPAND)
vbox1.Add(hbox, 1, wx.ALL|wx.EXPAND)
self.SetSizer(hbox)
self.SetSizer(vbox1)
self.statusbar = self.CreateStatusBar()
self.Centre()
class MyApp(wx.App):
def OnInit(self):
frame = MyToolBar(None, wx.ID_ANY, 'toolbar.py')
frame.Show(True)
return True
app = MyApp(0)
app.MainLoop()
Die Anordnung in meinem Script, führt leider nur dazu, dass die Toolbar und das TextCtrl sich teilweise verdecken. Vielleicht kann mir einer von euch helfen.
Grüße, Calo