Python Qt Programme funktionieren nach Systemwechsel nicht mehr richtig

Diskutiere das Thema Python Qt Programme funktionieren nach Systemwechsel nicht mehr richtig im Forum Mac OS Entwickler, Programmierer.

  1. MacMamba

    MacMamba Thread Starter Mitglied

    Beiträge:
    13
    Zustimmungen:
    0
    Mitglied seit:
    30.05.2004
    Hallo!

    Ich bin von Windows auf Mac OS umgestiegen. Nun funktionieren meine Qt Programme nicht mehr [​IMG] .
    Meine Kommandozeilenprogramme funktionieren einwandfrei aber die Qt Programme nicht mehr.
    Ich schreibe in PyCharm unter Windows und jetzt auch unter Mac OS. In PyCharm kann ich es ausführen, es startet auch aber wenn ich Buttons klicke machen sie nicht das was Sie sollen(bis auf Exit Button).
    Hat jemand eine Idee woran es liegen kann?

    Hier mal mein Github mit dem Programm: https://github.com/Gir0nim0/Sudhausrechner

    Danke im voraus. Mit freundlichen Grüßen, Jan
     
  2. Hausbesetzer

    Hausbesetzer Mitglied

    Beiträge:
    10.839
    Zustimmungen:
    2.813
    Mitglied seit:
    10.09.2008
    Die gleiche Python Version nutzt du aber?
     
  3. MacMamba

    MacMamba Thread Starter Mitglied

    Beiträge:
    13
    Zustimmungen:
    0
    Mitglied seit:
    30.05.2004
    Ja! Beides 3.7.3
     
  4. vidman2019

    vidman2019 Mitglied

    Beiträge:
    587
    Zustimmungen:
    338
    Mitglied seit:
    10.01.2019
    Und das hast du auf macOS installiert?

    Was sagt denn "python --version" im terminal? Selbst unter Mojave wird von Apple nur 2.7.10 installiert.
     
  5. Hausbesetzer

    Hausbesetzer Mitglied

    Beiträge:
    10.839
    Zustimmungen:
    2.813
    Mitglied seit:
    10.09.2008
    Noch kann man sich bei macOS ja freie Software installieren wie man will
     
  6. oneOeight

    oneOeight Mitglied

    Beiträge:
    51.635
    Zustimmungen:
    5.310
    Mitglied seit:
    23.11.2004
    auf den standard pfaden wird dann aber trotzdem wohl das apple installierte genommen.
    da muss man wohl noch etwas anpassen, wenn man selbst eine installert.
     
  7. Hausbesetzer

    Hausbesetzer Mitglied

    Beiträge:
    10.839
    Zustimmungen:
    2.813
    Mitglied seit:
    10.09.2008
    Also so doof wird er nicht sein sorry aber irgendwo kann man die Leute nicht für ganz grenzdebil halten (und das OBWOHL ich hier schon länger dabei bin und viele Threads gesehen habe, die ich darunter einordnen würde)
     
  8. vidman2019

    vidman2019 Mitglied

    Beiträge:
    587
    Zustimmungen:
    338
    Mitglied seit:
    10.01.2019
    Warum eigentlich immer dieser Ton?

    Ich halte niemanden für doof, den TE schon gar nicht. Ich wollte lediglich auf eine mögliche Fehlerursache hinweisen.
     
  9. Hausbesetzer

    Hausbesetzer Mitglied

    Beiträge:
    10.839
    Zustimmungen:
    2.813
    Mitglied seit:
    10.09.2008
    Die Fehlerursache "falsche Python Version"? Die schon geklärt war?
     
  10. vidman2019

    vidman2019 Mitglied

    Beiträge:
    587
    Zustimmungen:
    338
    Mitglied seit:
    10.01.2019
    Abhängig davon wie Python3 installiert wird, kann es trotzdem sein dass manche Aufrufe eben die von Apple standardmäßig installierten Python2-Bibliotheken aufrufen. Und nur auf diese macOS-Eigenheit habe ich hinweisen wollen, ohne irgendwem irgendetwas unterstellen zu wollen.
     
  11. Hausbesetzer

    Hausbesetzer Mitglied

    Beiträge:
    10.839
    Zustimmungen:
    2.813
    Mitglied seit:
    10.09.2008
    Da musst Du Python 3 aber völlig absichtlich falsch installieren. Python 3 weiß normalerweise, wo es seine Bibliotheken suchen muss
     
  12. MacMamba

    MacMamba Thread Starter Mitglied

    Beiträge:
    13
    Zustimmungen:
    0
    Mitglied seit:
    30.05.2004
    Da hat er die 2.7.10 !

    Aber in meinem Python Editor PyCharm, hab ich den Project Interpreter die Python Version 3.7 eingestellt. Er benutzt also nicht die 2.7.
    Was mich halt echt wundert ist, dass ich in Windows und MacOs beides den gleichen Editor benutzte und die Python Version identisch ist. Und ich die Buttons aber nicht benutzen kann unter MacOs. Kurioses Phänomen. Ich bin da noch kein Stück weiter.
     
  13. vidman2019

    vidman2019 Mitglied

    Beiträge:
    587
    Zustimmungen:
    338
    Mitglied seit:
    10.01.2019
  14. hr47

    hr47 Mitglied

    Beiträge:
    2.053
    Medien:
    1
    Zustimmungen:
    1.365
    Mitglied seit:
    29.03.2016
    Vielleicht eine dumme Frage, aber - unterscheiden sich die Buttons im Typ? Hast du mal den Exit-Button "kopiert" und anderen Code hinterlegt? Bzw. versucht den nicht ausgeführten Code der Buttons über andere Steuerelemente auszuführen? Oder eben einen der nicht funktionierenden Buttons mit einer Trivialfunktion ala "Hello World" zu hinterlegen und zu schauen, ob sie dann auf das Ereignis reagieren? So könntest du das Problem zumindest eingrenzen und herausfinden, ob es ein Problem mit der GUI oder eben ein Code-Problem ist, das durch die Nutzung des Frameworks auf einer anderen Plattform entsteht.
    Nach meiner Erfahrung heißt plattformübergreifend leider noch lange nicht "1:1" überall verwendbar. Leider. Daher meine Fragen - muss also nicht ein Versionsfehler etc. sein.

    Vertiefte Tipps kann ich hier nicht geben, da ich aus der VisualStudio-welt mit VB+c# komme und mich demnach nicht großartig auf deiner Umgebung auskenne.

    Ich hatte sowas ähnliches aber Mal bei einem Framework von Microsoft, das ebenfalls plattformübergreifend funktionieren sollte. Es wurde dort eine "Fill-Methode" verwendet, die aber auf anderen Plattformen murks war und einen Fehler erzeugte, ohne das es einenAbsturz oder eine Compiler-Meldung gab. Es sah also so aus, als wäre alles in Butter - das sind immer die "schönsten" Fehler...
     
  15. MacMamba

    MacMamba Thread Starter Mitglied

    Beiträge:
    13
    Zustimmungen:
    0
    Mitglied seit:
    30.05.2004

    Ich habe alle Buttons manuell angelegt. Der einzige Unterschied ist, dass der Exit Button die Exit-Funktion von Python verwendet, wenn er geklickt wird. Bei den Anderen wird das Click Event an eine vom mir geschriebene Funktion übergeben. Und diese funktionieren auch, hab ich jetzt mal getestet indem ich ein print(Ergebnis) am Ende der Funktion gesetzt habe. Und das Ergebnis wird mir in der Konsole der IDE angezeigt. Das Ergebnis wird anscheinend nur nicht in mein Vorgesehenes Label in der GUI gesendet.
     
  16. MacMamba

    MacMamba Thread Starter Mitglied

    Beiträge:
    13
    Zustimmungen:
    0
    Mitglied seit:
    30.05.2004
    Python 3.7 hab ich über Python.org installiert!
     
  17. hr47

    hr47 Mitglied

    Beiträge:
    2.053
    Medien:
    1
    Zustimmungen:
    1.365
    Mitglied seit:
    29.03.2016
    Wenn ich das richtig verstehe ist es also nicht der BUTTON, der nicht funktioniert, sondern die Ausgabe eines Inhalts in ein Label als Reaktion auf das Click-Ereignis des Buttons? Dann könnte es schlicht sein, das das Neuzeichnen des Labels nicht funktioniert (der Inhalt ist also da, wird aber nicht vom Steuerelement angezeigt - hatte ich auch mal). Du kannst das testen, indem du z.B. nach der Zuweisung an das Label den Wert aus dem Label neu ausliest und z.B. über print ausgeben lässt. Wird etwas zurückgegeben, ist das Neuzeichnen das Problem. Unter .NET kann man das Redraw-Ereignis auch per Code ausführen - geht sicherlich auch in deiner Umgebung.
    Wie vermutet scheint es aber ein Konflikt mit der GUI zu sein, das du vermutlich nur lösen kannst, wenn du an allen möglichen Stellen alternativen bzw. angepassten Code verwendest. Das ist einer der Gründe, warum ich das programmieren in sog. "Multi-Plattformen" recht schnell gelassen habe, da bei komplexeren Programmen selten bis nie alles 1:1 funktionierte. So was nervt - dann kann man auch gleich Plattformoptimierte/native Compiler und Sprachen verwenden.
     
  18. MacMamba

    MacMamba Thread Starter Mitglied

    Beiträge:
    13
    Zustimmungen:
    0
    Mitglied seit:
    30.05.2004
    Gute Idee!

    Hab ich mal gemacht und er gibt mir das Label zurück. Also funktioniert der Code. Nun ist mir aufgefallen, dass der Wert im Label angezeigt wird, wenn ich mal kurz auf den Desktop klicke. Sprich also das Programmfenster von aktiv auf inaktiv setze. Das hatte ich auch noch nicht.:confused:
     
  19. hr47

    hr47 Mitglied

    Beiträge:
    2.053
    Medien:
    1
    Zustimmungen:
    1.365
    Mitglied seit:
    29.03.2016
    Also scheint es wirklich das Neuzeichnen zu sein, das offenbar erst nach einem Wechsel des Fokus stattfindet. Unter VB gibts hier z.B. den Befehl "doEvents", der u.a. dafür sorgt, das alle bereits abgelaufenen Programmteile mit der GUI synchron sind. Suche nach einem Äquivalent in "deiner" Sprache und du wirst dieses Problem vermutlich lösen können. Am besten dann gleich eine globale Funktion schreiben, die das überall übernimmt. Vermutlich wird es aber - nach meiner Erfahrung - leider nicht bei dieser einen Anpassung bleiben.

    Alternativ könntest du auch mal statt eines LABELS ein anderes Steuerelement nehmen, das Text darstellen kann und sich somit grundsätzlich eignet - z.B. eine Textbox, bei der du die Eingabefunktion deaktivierst. Oder einfach mal mit einem neuen Label ausprobieren, das unter MacOS erzeugt wurde. So oder so liegt da wohl leider noch ne Menge Arbeit vor dir - wenn du Pech hast...
     
  20. MacMamba

    MacMamba Thread Starter Mitglied

    Beiträge:
    13
    Zustimmungen:
    0
    Mitglied seit:
    30.05.2004

    Vielen Dank !!!
     
Die Seite wird geladen...

MacUser.de weiterempfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite weitersurfst, akzeptierst du unseren Einsatz von Cookies. Akzeptieren Weitere Informationen...