Sophus hat geschrieben:[...] Für mich ist das Erfolgserlebnis beim Programmieren wichtig, daher versuche ich nebenbei zu lernen, in dem ich mich gleich an die Materie heranwage.[...] Du siehst, mein Anliegen ist ganz elementar. Andere tun so, als will ich gleich groß einsteigen und eine "Alles-vernichtende-Software" programmieren
Ich mag gerne Kritik, aber man sollte mir auch Lösungsvorschläge aufzeigen, anstatt, wie die anderen, mir immer fein auf Lektüren zu verweisen. Das ist absolut keine Hilfe. Entschuldige, ich kann es nicht lassen, die Hilfe-Kompetenz der anderen gänzlich in Frage zu stellen.
Ich denke dir wurden Lösungsvorschläge aufgezeigt und zwar dich erstmal mit den grundlegenden Dingen soweit vertraut zu werden, dass es daran nicht schon scheitert, denn das macht auf Dauer keinen Spaß und ist imho eher demotivierend. Hier will dich auch keiner als dumm oder faul darstellen, aber wie BlackJack bereits geschrieben hat ist GUI-Programmierung mit Qt eben nicht vergleichbar mit VB oder Delphi, da du OOP vorher verstanden haben solltest. Gerade deine Nachfrage zeigt, dass du es noch nicht verstanden hast. Hier wäre es jetzt zum Beispiel eine gute Möglichkeit mal nach den Begriffen zu suchen, die ich genannt habe, also was ist eine Instanz, was bedeutet das parent bei Qt usw. Das Netz ist voll von Informationen.
Du könntest zwar jetzt erwarten, dass ich dir detailiert erkläre, wie das funktioniert, aber das haben schon etliche Leute in Netz in Tutorials erklärt, die sich da auch z.T. didaktische Überlegungen zu gemacht haben. Da hier alle freiwillig ihre Zeit opfern, empfiehlt man dann so ein Tutorial erstmal selbst durchzuarbeiten. Wenn du dann dabei ein Verständnisproblem hast, hat keiner ein Problem dir zu antworten, wenn du einen Thread eröffnest a la "Ich bin bei diesem Tutorial so weit gekommen und habe jetzt an der Stelle ein konkretes Problem...". Das Forum würde aber auf Dauer so nicht funktionieren, wenn jeder sich Programmtexte zusammensucht und hier nach einem Fehler fragt.
Ich kenne dein Vorgehen nur zu gut, da eine Vielzahl meiner Schüler es genauso machen und glaube mir, es führt eher zu Frustrationen als zu einem Erfolg!
Edit: Und zu deinem Problem bzgl. der Auskommentierung und zukünftiger Fehlersuche. Baue dir doch mal print statements ein, die jeweils angeben, was gerade aufgerufen wird, also z.B.:
Code: Alles auswählen
# Diese Routine ist quasi der Einstiegspunkt fuer das Programm
if __name__ == '__main__':
# Hier wird eine Instanz der Applikation erstellt
app = QtGui.QApplication(sys.argv)
# Hier wird eine Instanz der Klasse für das Hauptfenster erstellt
winHauptfenster = MeinDialog()
# Mit der Methode showMaximized wird das Hauptfenster maximiert angezeigt
print "vor hauptfenster"
winHauptfenster.exec_()
print "nach hauptfenster"
# Wenn die Instanz winHauptfenster geschlossen wird, dann wird auch die
# Applikation beendet
sys.exit(app.exec_())
Dann wirst du erkennen, dass beim Programmstart nur "vor hauptfenster" ausgegeben wird, das Programm erstmal also gar nicht weiter kommt. Nach dem Beenden wird die Ausgabe von Dialog und "nach hauptfenster" ausgegeben und das Programm wird nicht beendet. Das liegt eben daran, dass er jetzt den letzten Befehl ausführt und vergeblich auf einen Rückgabewert von app.exec_() wartet, der aber nie kommen wird

So, wie du exec_ für den Dialog hier einsetzt funktioniert das nicht, du möchtest lieber show() verwenden, das nicht dein Programm blockiert, siehe auch in der Doku:
http://pyqt.sourceforge.net/Docs/PyQt4/ ... ml#details