Ich habe vor ca. einer Woche angefangen mich für die Programmierung mit Python zu interessieren. Hab früher mal ein bisschen da und dort (PHP, C++) reingeschnuppert, bin aber immer wieder irgendwann gescheitert, weil ichs einfach nicht mehr verstanden habe.
Grundsätzlich scheint mir Python etwas klarer und nicht ganz so kompliziert zu sein. Dennoch gibt es immerwieder Dinge, die ich nicht so ganz verstehe.
Habe mir gedacht, learning by doing wird wohl das Beste sein. Habe mir mittels wxPython ein Fenster gebastelt mit einigen wenigen Menüs. Exit hat eine Funktion.
Fragen:
Wozu wird das self verwendet bzw. wann ist dies zu verwenden?
Wieso wird class MyApp(wxApp): mittels ->> def OnInit(self): initialisiert und wxFrame.__init__() mit __init__?
class MyFrame(wxFrame) stellt ja das Hauptfenster dar, wieso wird das erst am Ende des Programmcodes aufgerufen?
Danke!
Code: Alles auswählen
# -*- coding: cp1252 -*-
from wxPython.wx import *
ID_EXIT = 102
ID_OPEN = 103
class MyFrame(wxFrame):
def __init__(self, parent, ID, title):
wxFrame.__init__(self, parent, ID, title,
wxDefaultPosition, wxSize(800, 600))
self.CreateStatusBar()
self.SetStatusText("This is the statusbar")
###Definition der Variablennamen für die Menues
menubar = wxMenuBar()
menu1 = wxMenu()
menu2 = wxMenu()
menu3 = wxMenu()
###Hauptmenueeintraege hinzufuegen
menubar.Append(menu1, "&Datei");
menubar.Append(menu2, "&Bearbeiten");
menubar.Append(menu3, "&Info");
###Den Hauptmenueeintraegen Eintraege hinzufuegen
menu1.Append(ID_OPEN,"Öffnen")
menu1.Append(ID_EXIT,"Beenden")
###Das Menue anzeigen
self.SetMenuBar(menubar)
###Menueevents erstellen
EVT_MENU(self, ID_EXIT, self.TimeToQuit)
###Eventprozeduren erstellen
def TimeToQuit(self, event):
self.Close(true)
class MyApp(wxApp):
def OnInit(self):
frame = MyFrame(NULL, -1, "Erstellung von Menues")
frame.Show(true)
self.SetTopWindow(frame)
return true
app = MyApp(0)
app.MainLoop()