Gliederung, Menu ID's
Verfasst: Donnerstag 31. Mai 2007, 14:46
Moin Leute 
Ich bin gerade dabei mein erstes Python Programm zu schreiben
Da ich nicht gleich am Anfang alles versauen möchte, wollte ich euch mal Fragen ob die Gliederung so in Ordnung ist. Also Ob man das Programm so leicht erweitern kann, oder was ich vielleicht noch verbessern könnte?
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:
Ich bedanke mich schonmal für eure Ratschläge 

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()
