Klassen vs Objekte verhalten sich wie Blaupausen zu danach konstruierten Dingen. Wenn ich dir eine Blaupause eines 3er-BMWs gebe, und du baust einen neuen BMW und oeffnest dessen Tuer - dann gehen ja auch nicht die von dem 3er im Hof die Tuer auf. Genau das tust du aber, wenn du MainWindow() aufrufst - du machst eine NEUE Instanz von MainWindow. Du musst dich aber auf die bestehende beziehen.
Statt eine frei-stehenden Funktion musst du also eine Methode machen. Und einfach ein Attribut setzten funktioniert auch nicht, du musst in die Dokumentation von QLabel schauen, und die richtige Methode raussuchen. Wahrscheinlich setText.
@DL3AD: Ergänzend: Die Argumente bei `super()` sind überflüssig.
So wie Du den generieren Quelltext (was man nicht macht) mit `MainWindow` über `setupUi()` verbandelst gibt es nun für den ganzen Kram zwei Wege, einmal `self` und dann `self.ui`. Das macht keinen Sinn.
Namen sollten weder abgekürzt werden, noch nummeriert, noch sollte man sinnfreie Prä-/Suffixe wie `my` irgendwo dran pappen. Sich an Namenskonventionen halten wäre auch sinnvoll. Wenn schon nicht an die von Python dann doch wenigstens die von Qt.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Methoden in Pascal benutzen implizit die Instanz, auf der sie aufgerufen werden.
`my_hallo` ist aber gar keine Methode, sondern eine frei stehende Funktion. Mach daraus eine Methode und benutze self.ui...
Um das Pascal-Programm mal als Ausgangsbeispiel zu nehmen: Ungefähr das hier hast Du in Python versucht: Der Rückruf geht an eine Prozedur/Funktion statt an eine Methode und es wird in der Prozedur nicht auf das existierende Objekt zugegriffen sondern noch mal lokal ein neues erstellt.
@DL3AD: In dem Tutorial das __deets__ verlinkt hat sind viele Beispiele. Zum ausprobieren und herumspielen um Verständnis und Gefühl dafür zu bekommen. Aber Du willst immer ”Beispiele” die exakt auf Dein Problem passen um die nachmachen zu können, ohne das Du da drüber nachdenken und sie tatsächlich verstehen musst. Wenn man so ”lernt” kann man nichts selber was man nicht schon mal irgendwo gesehen hat und nur leicht anpassen muss. Es würde wirklich Sinn machen erst einmal Python zu lernen und dann Qt. Bevor man sich mit dem Designer Sachen erstellen lässt die man nicht versteht.
@__deets__: Dir ist schon klar das Du da gerade das Tutorial ”abschreibst”, denn genau so ein Beispiel ist da auch drin:
9.3.4. Method Objects
Usually, a method is called right after it is bound:
In the MyClass example, this will return the string 'hello world'. However, it is not necessary to call a method right away: x.f is a method object, and can be stored away and called at a later time. For example:
„Der Prophet wohnt in Kreuzberg und man darf keine Bilder von ihm malen — sonst Blutbad oder mindestens wütender Mob der irgendwelche Fahnen verbrennt.“
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
ich möchte nix auf dem Silbertablett haben!
Oben habe ich ein einfaches Beispiel
Wenn dort auf einen Btn geklickt wird soll beispielhaft eine selbst definierte Funktion aufgerufen werden und als Reaktion der Funktion ein Label beschrieben werden.
Meine bitte ist lediglich dieses Beispiel zu ändern dass es funktioniert.
Dass hilft mir dann weiter - ich habe schon stundenlang rumgelesen und probiert.
Ich lerne am besten an selbst gebauten Beispielen.
Also wer ist so nett und hilft mir ?
"Ich will nix auf dem Silbertablett haben" und "Meine bitte ist lediglich dieses Beispiel zu ändern dass es funktioniert." sind ein Widerspruch. Denn das *ist* die Loesung auf dem Silbertablett. Und am besten zu lernen, wenn man etwas fertig vorgesetzt bekommt, ist wohl auch nicht so ganz wahr. Da hast du dann deutlich weniger gelernt, als dir die allgemeinen Konzepte der Objektorientierung, die an allen moeglichen Ecken und Enden anzuwenden sind, zu erarbeiten.
Warum willst du mir vorschreiben wie ich etws zu lernen habe ? jeder Mensch ist da anders.
Warum hilfst du mir nicht auf die Art um die ich gebeten hatte ?
Wir haben nun 18 Beiträge auf diesem Faden dass muss doch nich sein.
Warum willst du mir vorschreiben, wie ich zu helfen habe? Jeder Mensch ist da anders.
Warum nimmst du die Hilfe nicht an, die dir angeboten wurde?
Wir haben nun 18 Beitraege auf diesem Faden, das muss doch nicht sein.
Also noch mal, bist du so nett und probierst mal zu verstehen, was dir hier gezeigt (Code-Beispiele inklusive) wurde?