Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
ich würde gerne in einem mit pyqt5 erstellten Fenster eine Funktion ausführen, die zu einem Wert jeweils +2 dazuaddiert. Das ganze soll per Buttonklick erfolgen.
Also der Code soll etwa so aussehen:
Ich erhalte die Meldung, dass int irgendwie unerwartet sei. Die Funktion funktioniert aber soweit - auf Kommandozeilenbasis läuft das. Wie könnte ich das Problem lösen?
Du hast den Rückgabewert deiner Funktion als Signal Versucht zu benutzen. Das ist ein int. Daher die Fehlermeldung.
Um das erstmal zum laufen zu bringen benötigst du entweder ein lambda oder functools.partial.
Danach hast du dann natürlich immer noch das Problem, das ein Rückgabewert in einem clicked slot natürlich völlig sinnlos ist. Wo soll der denn enden?
Aus diesem Grund Programmierert man GUIs objektorientiert, weil man dann solche Ergebnisse zb an Labels binden kann oder in Datenstrukturen speichern etc - ohne dabei auf die Pest globale Variablen zurückgreifen zu müssen.
Ja. Kann es nicht. So sind lambdas nunmal. Nochmal: statt hier mit globalen Variablen rumzufuhrwerken, schreib eine Klasse, und dann kannst du ganz simpel eine Methode schreiben in der du deinen Wert berechnest und auf Listen zugreifst und was auch immer dein Herz begehrt.
Ok, dann danke ich dir soweit erstmal. Dann habe ich heute noch was zu tun - mein Quellcode ist bereits mehrere Seiten lang. Aber ich sehe ein, dass globale Variablen kein guter Stil sind.
Selbst wenn eine Zuweisung in einem ``lambda``-Ausdrück möglich wäre, dann würde Dir das ja nichts nützen weil `wert` dann ein lokaler Name in der Funktion wäre und da die nächste Fehlermeldung käme weil Du versuchst auf den Wert zuzugreifen bevor er definiert wurde.
Wenn das als Index in eine Liste verwendet werden soll, warum dann mit 1 initialisieren und immer 2 addieren? Du hast da hoffentlich keine Liste erstellt in der jedes zweite Element etwas anderes bedeutet als sein Vorgänger‽
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman