
Ich bin gerade dabei mein erstes Python Programm zu schreiben

Außerdem stören mich die ID's vom wx.Menu irgenwie. Gibt es eine Möglichkeit ein Menü zu programmieren ohne ID's zu definieren. ID's kommen mir nicht wirklich als "schöne" Lösung vor....
Hier mal der Code:
Code: Alles auswählen
# -*- coding: utf-8 -*-
import wx
#---------------------------------------------------------------------------
class MainWindow(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title)
# Statusbar
self.CreateStatusBar()
# Menubar
menuBar = wx.MenuBar()
# Datei
ID_OPEN = 101
ID_SAVE = 102
ID_SAVE_AS = 103
ID_EXIT = 104
menu1 = wx.Menu()
menu1.Append(ID_OPEN, u"Ö&ffnen...", u"Öffnen...")
menu1.Append(ID_SAVE, "&Speichern", "Speichern")
menu1.Append(ID_SAVE_AS, "&Speichern unter...", "Speichern unter...")
menu1.AppendSeparator()
menu1.Append(ID_EXIT, "&Beenden", "Beendet das Programm")
menuBar.Append(menu1, "&Datei")
# Hilfe
ID_ABOUT = 201
menu2 = wx.Menu()
menu2.Append(ID_ABOUT, "&About...", "About...")
menuBar.Append(menu2, "&Hilfe")
# Menubar hinzufügen
self.SetMenuBar(menuBar)
#Menu Bindings
self.Bind(wx.EVT_MENU, self.MenuExit, id=ID_EXIT)
#Splitter erzeugen
MainSplitter(self)
# Fenster anzeigen
self.CenterOnScreen()
self.Show()
def MenuExit(self, event):
self.Close()
#------------------------------------------------------------------------------
class MainSplitter(wx.SplitterWindow):
def __init__(self, parent):
wx.SplitterWindow.__init__(self, parent, wx.ID_ANY, style=wx.SP_LIVE_UPDATE | wx.SP_BORDER )
# Tree erzeugen
self.tree = wx.TreeCtrl(self, wx.ID_ANY)
root = self.tree.AddRoot("Root")
for x in range(3):
child = self.tree.AppendItem(root, "Item %d" % x)
for y in range(3):
last = self.tree.AppendItem(child, "item %d-%d" % (x, y))
for z in range(3):
item = self.tree.AppendItem(last, "item %d-%d-%d" % (x, y, z))
# Notebook erzeugen
self.notebook = wx.Notebook(self, wx.ID_ANY)
self.notebook.AddPage(Page1(self.notebook), "Page 1")
# Splitten
self.SetMinimumPaneSize(20)
self.SplitVertically(self.tree, self.notebook, 250)
class Page1(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
Text = wx.StaticText(self, wx.ID_ANY, "BLA BLA BLA BLA")
TextControl = wx.TextCtrl(self, wx.ID_ANY, "BLUBB")
# BoxSizer
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(Text, 0, wx.BORDER | wx.ALL, 10)
sizer.Add(TextControl, 1, wx.EXPAND | wx.BORDER | wx.LEFT | wx.RIGHT | wx.BOTTOM, 5)
self.SetSizerAndFit(sizer)
#------------------------------------------------------------------------------
app = wx.PySimpleApp()
MainWindow(None, wx.ID_ANY, 'MainWindow')
app.MainLoop()
