feldmann_markus hat geschrieben:
Nun benutze ich als Vorlage für mein Projekt folgenden Code Schnippsel,
Code: Alles auswählen
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
In Zeile 3 wird gesagt es gibt kein übergeordnetes Widget, und in der Zeile 4 wieder doch, oder wie nun?
Nein. In Zeile 3 gibst du ein Default-Wert für das Argument "parent" an. Wird dieses beim Aufruf von __init__ nicht angegeben, dann wird automatisch None "eingesetzt" (für Top-Level-Widgets wie eine MainWindow-Instanz). In Zeile 4 wird dann einfach eine Methode aufgerufen, der das parent-Objekt übergeben wird.
Zeile 3 ist folglich eine Methodendefinition mit Default-Parameter, während Zeile 4 ein normaler Methodenaufruf mit Parameterübergabe ist. Das sind aber absolute Basics, die in jedem Tutorial erklärt werden.
Weiterhin verstehe ich die Zeile 4 nicht. Was bewirkt diese?
Das ist der Aufruf des Konstruktors der Basisklasse. Er bewirkt, dass die in der Basisklasse definierte Initialisierung durchgeführt wird, was nötig ist, um das C++-Objekt zu erzeugen, welches das Widget repräsentiert.
Sowohl Basiskonstruktoren als auch Default-Argumente sollten dir aber eigentlich bekannt sein, wenn du ernsthaft mit Python programmieren willst. Da diese Dinge mehr oder weniger zu den grundlegenden Dingen gehören, und das Forum eigentlich nicht dafür da ist, dir Tutorial und Doku vorzulesen, schlage ich einfach mal vor, dass du dir überhaupt erstmal die Grundlagen von Python aneignest, bevor du direkt in die GUI-Programmierung einsteigst.
Grüße Markus[/quote]