QPython: mal klappt HelloUser.py, mal nicht! Warum?

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.
Antworten
siggi
User
Beiträge: 79
Registriert: Montag 29. Januar 2007, 14:22

Hallo,

ich bin seit 2 Wochen ein Smartphone und QPython Newbie. Das Smartphone ist ein Samsung Galaxy J4+, das QPYthon habe ich vom Google Playstore als QPython für Android heruntergeladen. Da ich Pythonerfahrung habe, konnte ich ein paar Konsolenprogramme gut auf dem Galaxy mit QPython Terminal ausführen. Aber GUI! Au weh! Ich habe ein kleines Programm erstellt (nach Internetanleitung modifiziert), und mal klappt es (Eingabefeld erlaubt Nameneingabe), mal klappt es nicht, d.h. nur Errorcode im Terminal :-(

Code: Alles auswählen

from androidhelper import Android

droid = Android()
respond = droid.dialogGetInput("Hello", "What is your name?")
print respond
name = respond.result
if name:
    message = 'Hello, %s!' % name
else:
    message = "Hey! And you're not very polite, %Username%!"
droid.makeToast(message)
Wenn ich es mit dem QPython Editor auf dem Galaxy ausführe sieht das Ergebnis so aus, wenn es klappt:

[/img][/img] ???????
Verflixt, wie bekomme ich bitte meine 2 Screenshots - JPG Bilder - hier hochgeladen? Die Bilder sind lokal auf meinem Notebook, nicht irgendwo im Internet! Bitte erst mal Hilfe dazu!

Danke, siggi
Gruss,

siggi
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du wirst die ins Internet hieven muessen, sonst kann man die nicht referenzieren hier. Da gibt es ja kostenlose Plattformen fuer.
siggi
User
Beiträge: 79
Registriert: Montag 29. Januar 2007, 14:22

@ _des_: Wenn ich dir sage, dass ich gerade ein Rekonvaleszent einer OP am offenen Herzen bin und dass ich noch die letzten 2 Jahre von WW2 erlebt habe, gibst du mir dann einen spezielleren Tipp?

Danke, siggi
Gruss,

siggi
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Und wenn ich dir sage, dass ich Probleme mit Nacken, Schultern und Handgelenken habe, und darum weniger tippen kann als ich das gerne wuerde - gibst du dir dann ein bisschen mehr Muehe, sowas selbst rauszufinden?

https://www.bilder-upload.eu/

Nach eingabe von "bild im internet hochladen" der erste Treffer.
Benutzeravatar
__blackjack__
User
Beiträge: 13533
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Ich benutze immer imgur.com um Bilder hochzuladen die sich einfach in Foren einbetten lassen. Da landen auch Bilder die man ”bei” Stackoverflow & Co hochlädt.

Code: Alles auswählen

- (void)countSheep {
    unsigned int sheep = 0;
    while ( ! [self isAsleep]) { ++sheep; }
}
siggi
User
Beiträge: 79
Registriert: Montag 29. Januar 2007, 14:22

Danke, @_blackjack_ für den imgur.com Tipp! Jetzt nochmal ausführlich:

Hallo,

ich bin seit 2 Wochen ein Smartphone und QPython Newbie. Das Smartphone ist ein Samsung Galaxy J4+, das QPYthon habe ich vom Google Playstore als QPython für Android heruntergeladen. Da ich Pythonerfahrung habe, konnte ich ein paar Konsolenprogramme gut auf dem Galaxy mit QPython Terminal ausführen. Aber GUI! Au weh! Ich habe ein kleines Programm erstellt (nach Internetanleitung modifiziert), und mal klappt es (Eingabefeld erlaubt Nameneingabe), mal klappt es nicht, d.h. nur Errorcode im Terminal :-(

Code: Alles auswählen

from androidhelper import Android

droid = Android()
respond = droid.dialogGetInput("Hello", "What is your name?")
print respond
name = respond.result
if name:
    message = 'Hello, %s!' % name
else:
    message = "Hey! And you're not very polite, %Username%!"
droid.makeToast(message)
Wenn ich es mit dem QPython Editor auf dem Galaxy ausführe sieht das Ergebnis so aus, wenn es klappt (tut mir leid, sooo groß ist mein Original nicht, wie ich's in Imgur verkleinern kann, muss ich noch lernen):
Bild
Ich kann dann einen Namen eingeben usw.

Dann kommt es vor, dass ich stattdessen folgende Fehlermeldung im Terminal bekomme:
Bild

Was ist da los? Warum nicht konsistent korrekt (oder konsistent Fehler)?

Danke, siggi
Gruss,

siggi
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Augenscheinlich darf Python GUIs nicht direkt treiben, sondern muss dazu durch einen speziellen Service - Scripting Languages 4 Android, kurz SL4A. Das ist ein Programm, das auf dem Telefon laeuft, und das via socket von Python angesprochen wird. Und instruiert, zB Buttons etc darzustellen. Wenn du sowas wie einen Taskmanager hast, kannst du schauen, ob das laeuft, oder ob das ZB in der QPython-Umgebung neu gestartet werden kann. Warum das nun sporadisch haengt/abgestuerzt ist/etc kann ich dir nicht sagen. Wikipedia spricht von Beta-Software, scheint nicht so gut abgehangen.
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Alternativ lass mal das Print weg.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
Benutzeravatar
__blackjack__
User
Beiträge: 13533
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@siggi: Kein Grund sich für die Grösse zu entschuldigen und doch: so gross ist das Original. Das ist genau das was Dein Samsung Pixel für Pixel anzeigt – 720×1480 Pixel. Die einzelnen Pixel sind auf Deinem Samsung nur kleiner als auf vielen Desktop-Bildschirmen, weil die Auflösung höher ist. Wenn man keinen 4K-Monitor auf dem Schreibtisch stehen hat, zumindest.

Code: Alles auswählen

- (void)countSheep {
    unsigned int sheep = 0;
    while ( ! [self isAsleep]) { ++sheep; }
}
siggi
User
Beiträge: 79
Registriert: Montag 29. Januar 2007, 14:22

Lösung
********
Statt
"print respond"
im Programm schreiben
"print (respond)"
Bisher läuft das Programm damit konstant richtig!
Seltsam, ich dachte, das sei nur in Python 3 erforderlich!?
Gruss,

siggi
Benutzeravatar
__blackjack__
User
Beiträge: 13533
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@siggi: Ja, und das kann nicht die Lösung sein. Wenn es jetzt läuft, liegt es an etwas anderem.

Code: Alles auswählen

- (void)countSheep {
    unsigned int sheep = 0;
    while ( ! [self isAsleep]) { ++sheep; }
}
siggi
User
Beiträge: 79
Registriert: Montag 29. Januar 2007, 14:22

@_blackjack_: seit 3 tagen teste ich das Programm ohne Probleme mit QPython3 (für Python3), statt wie vorher mit QPython (für Python2.7).

Edit: "ohne Probleme mit QPython" in meinem vorherigen Posting ging auch nur vorübergehend :-(
In QPython für Python2 ist wohl der Wurm drin.
Gruss,

siggi
Antworten