Simples Menu in Python

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,
    obwohl ich ja eigentlich nur auf der Konsole arbeite habe ich für einen Freund mit Touchscreen mich mal an die Grafik in Python getraut.
    Das Ergebnis ist ein Menue Programm das ich auf Github gepostet habe.

    https://github.com/villamarinella/Python-Menue


    Interessant ist hier noch das ich dort Foto bzw. Video Optionen für die PI Kamera installiert habe die mit einem "Knopf" am GPIO gestartet und gestoppt werden. Also erst startet eine Vorschau, dann wird mit dem "Knopf" das Foto bzw. das Video aktiviert und das Video auch mit dem "Knopf" wieder gestoppt.

    Viel Spass damit

    VM

  • Verbesserungsvorschläge:

    - Bleib bei einem Layout-Manager. Du verwendest derzeit 2 verschiedene: pack und grid. Man sollte nur mit einem von den 3 verfügbaren Layout Managern von TKinter arbeiten. In Deinem Fall würde pack bereits reichen da du eh nur eine row nutzt ;)
    - Variablen entsprechend ihrer Funktion oder Einsatz benennen, also nicht sowas wie buttonOk buttonXk buttonVX usw verwenden. tkFensterFehler für das extra Lichtschalter Fenster ist auch irreführend oder "error" für den Button "Foto aufnehmen". Oder das mischen von Deutsch und Englisch: error warning question inform rechner showIP editor ende :-/
    - Da du mit den Buttons aber eh später nix weiter machst (nachträgliche Änderungen vornehmen) brauchst du auch eigentlich nicht das Button Objekt zu speichern. Orientier dich einfach an der calculator.py ;)
    - Mehr darauf achten das der Code ordentlich ist. Leerzeichen da setzen wo sie angebracht wären, nicht dort setzen wo eben nicht, und auch Leerzeilen zwischen den Funktionen nicht vergessen :fies:
    - "quit" beendet Tkinter nicht vernünftig
    - Nicht ein Python Script nutzen um ein Bash Script auszuführen... Fast jeder Button wird bei dir dazu genutzt menue.sh mit einem Parameter auszuführen, und das bash Script wiederum führt dann wieder ein Python Script aus :-/ Pures Chaos :s

  • @ meigrafd

    Du solltest mich ja langsam kennen. Ich habe jede Deiner Anregungen aufgenommen und umgesetzt.
    Und Du solltest ja auch wissen das ich Dich, Dein Wissen und Deine Postings sehr schätze.
    Und daher weiß ich auch daß Du meine Kritik vertragen wirst.

    1. Ich habe diese Posting nicht getätigt um beurteilt zu werden, es sollte anderen etwas geben was mir nicht gelungen ist zu finden, ein Menue so wie ich es gebastelt habe.
    Und nun mein Ruf an all diejeniegen, die mir mangelnde Suchqualitäten vorwerfen, zeigt mir erst einmal so etwas in dieser Qualität was FUNKTIONIERT!!!!!!!!!!!
    2. Die Kritik ist in meinen Augen ja durchaus berechtigt, nur, wie beweist der Kritiker mir das.
    Ich nehme nur zwei Beispiele an denen ich gescheitert bin, worauf ich nicht stolz bin!
    1. Das Programm zu beenden, wie genau hätte ich das tun sollen? Ich habe es nicht hinbekommen, warum auch immer.
    Bei vielem was ich auch versuchte, immer war etwas nicht definiert, oder so, oder ich hatte keine Rechte...........
    root z. B, gabe es NIE.........................

    Also habe ich den Hammer ausgepackt und der hat gewirkt, was ist nun so falsch daran????????????????ß
    2. PY Programme im Menü aufzurufen, hab es im Netz gesucht, bin gescheitert, wie so oft, also wie wäre diese eine "ach ja so einfache Zeile" um den Weg des Shell scriptes zu umgehen? Ich hatte irgendwie nie die Rechte da etwas zu tun........
    Natürlich habe ich danach gesucht, ich bin ja nicht blöde, nur es hat immer in Fehlern geendet, also habe ich das genommen was ich kann, subprocess via shell.
    Hätte ich hier fragen sollen? Bei meinen Erfahrungen hier? Mich wieder als dämlich hinstellen zu lassen? Von Leuten die mir Links schicken auf denen steht das es nicht funktioniert??
    Über den Rest kann ich nur sagen:
    Ich versteh den ersten Code nicht und ich versteh den zweiten Code nicht, so einfach ist das!
    Und ich habe für mich entschieden ich muss das nicht verstehen, dazwischen habe ich alles verstanden und es zu meinen Gunsten verändert so das es funktioniert. Muss das einen Schönheitspreis gewinnen?
    Ich habe meinem Freund für seinen Touchscreen eine Lösung präsentiert!!!!!!!!

    Code
    def main(): 
       root = Tk()
       ex = Example(root)
       root.geometry("700x500+0+0")
       root.mainloop()
    
    
    if __name__ == '__main__':
       main()

    Und ich sage es u. a. ganz ehrlich, diese letzet Zeile, if_nam_ ..usw
    Ich verstehe die Struktur dieser Programme nicht!
    Dieses class, parents, apps, ex, example, mainloop, muss ich das wissen?
    Mein Menue funktioniert und das ist es.
    Was ich verstanden habe sind die Programme foto und video, die sind von MIR, nix c & P.
    So, IHR LIEBEN, und mit diesem Halbwissen wurstel ich mich durch Python, Shell, PHP, HTML und sogar C!

    In alledem habe ich bisher alle meine Wünsche ans Laufen bekommen, WIE AUCH IMMER.
    Und das nicht zuletzt Dank der Hilfe von HIER, dem Foŕum und auch von DIR, meigrafd.
    Und dafür bin ich nach wie vor sehr dankbar und schlucke auch die häufig unschönen Postings mir gegenüber.
    Nur, es wird immer schwieriger, immer unfreundlicher, man fühlt sich nicht mehr willkommen.

    Vielleicht könnt Ihr Euch alle da mal ein Beispiel an ANDREAS nehmen der mir hier sehr geholfen hat, und Nicht nur weil er mich auf die ICON Schiene gebracht hat, der auch immer den rechten Ton getroffen hat!
    Ich denke hier sollten einige mal genau überlegen wie sie mit Anderen umgehen, der Ton macht die Musik!

    Und die mich kennen wissen das ich erst seit ca. 1 Jahr auf dieser Welle schwimme.

    Wie gut?

    Na denn schaut mal hier, ist ja so schlecht nicht.

    https://github.com/villamarinella

    Und auch meine Livecam, ein raspi seit über 6 Monaten draussen auf dem Balkon, alles von mir selber gebaut!

    http://www.kwss.4irc.com/
    Username: forum
    Passwort: raspberry

    Mein Küchenlicht wird mit IR Bewegungsmelder gesteuert und meine Kaffeemaschine bezieht ihr Wasser via Raspberry Ultra Sound Sensor automatisch.
    In meiner Wohnung sind sechs Kameras in einem Überwachungssystem installiert, das meine Tochter anruft, wenn ich nicht rechtzeitig morgens aus dem Bett komme, oder so.............
    Naja, to all of YOU

    Stay lucky

    VM

  • meigrafd

    Und JA,
    natürlich habe ich inzwischen, da ich Zeit hatte, mir alles angesehen.

    Und nun verstehe ích auch alle Zeilen die ich vorher ausgeklammert hatte.

    Sowohl Python, class, tkinter, ich bin auf dem Laufenden.

    Bleibt nur dem Copy und Paste scripter das leidige Problem, Python3.

    Ich will das auch hier nicht vertiefen!!!!!
    Vemeiden wir Python3 wenn möglich und alles ist gut.

    In diesem Sinne, Danke noch einmal an Alle

    VM
    PS: Ich mache übrigens das Menue gerade neu! Es ist für einen 9" Touchscreeen, da sind die Buttons arg winzig. Jetzt mache ich größere und strukturiere um.


  • Vemeiden wir Python3 wenn möglich und alles ist gut.

    Warum?
    Ich verstehe das hier vorgetragene Python3 Bashing ehrlich gesagt nicht.

    Performancevergleiche meinerseits zw. Python2.7 und Python 3.4 haben haben ergeben, dass Python 3.4 im konkreten Fall (Datenimport vom vielen Files=>Konvertierung(Stringoperationen)=>DB-Operation(insert)) ca. um den Faktor 2 schneller ist.

    Der teilweise etwas geänderte Syntax ist m.E. verschmerzbar, das macht man 1x und gut.

    Und sonst?

    Zen

  • Es geht mir nicht um Python3 an sich.
    Es geht mir um die vielen Imports die nicht funktionieren! Und hier speziell zur GUI!

    Ich habe VIER Installationen von OpenCV auf meinen Rechnern.
    2.4.9, 3.0,3.1,
    Nicht eine Funktioniert mit Python3.
    import cv2...................

    Es ist mir bisher nicht gelungen eine Lösung für ImageTK, "from PIL import" oder den Import von Bildern zu finden.

    Um Python und die GUI besser zu verstehen habe ich mich intensiv, und ich meine intensiv, damit beschäftigt.
    Ich habe also gut 200 Scripte von Github geladen. Davon haben 80% mit Python3 NICHT funktioniert.

    Ich widerhole es noch einmal: BEI MIR nicht funktioniert.
    Weder auf Raspberry noch auf Ubuntu14.04, meinem PC.

    Und das Netz ist voll mit Leuten die Lösungen dazu suchen.
    Faszinierend find ich immer das es bei jedem Problem min. 1/2 Dutzend Leute gibt denen die Vorchläge geholfen haben. Mir haben sie überwiegend nicht geholfen.

    Daher lade ich meist nur die ersten Import Zeilen, kommt da ein Fehler vergesse ich das Ganze.


    Und daher habe ich mich entschlossen Python3 zu meiden sofern dort GUI Imports sind.

    Alle anderen Scripte, ok, stimme ich zu, kein Problem.

    VM

  • Hallo,

    Zitat

    Ich habe VIER Installationen von OpenCV auf meinen Rechnern.
    2.4.9, 3.0,3.1,
    Nicht eine Funktioniert mit Python3.
    import cv2...................


    Wie viele Version du hast ist ziemlich Latte. Die Frage ist, wie viele Version für für Python 3 installiert hast. Python 3 und Python 2 benutzen _nicht_ die gleichen Module. Auf alles, was du für Python 2 installierst hast, kannst du grundsätzlich nicht in Python 3 importieren. Und umgekehrt.

    Zitat

    Um Python und die GUI besser zu verstehen habe ich mich intensiv, und ich meine intensiv, damit beschäftigt.
    Ich habe also gut 200 Scripte von Github geladen. Davon haben 80% mit Python3 NICHT funktioniert.


    Beschäftige dich doch mal lieber intensiv mit den Unterschieden von P2 und P3, dass ist vielleicht viel wichtiger. Das für P2 geschriebene Skripte, besonders die älteren, nicht ohne Modifikation unter P3 laufen, ist durchaus normal.

    Eilt ja nicht, weil Python 2.7 hat noch Support bis 2020. Aber bis dahin wäre es sehr ratsam, dass du und Python 3 Programmierfreunde seid ;)

    Gruß, noisefloor

  • Danke für die Antwort.

    Nur noch einmal zum Verständnis.

    Es geht NICHT um den Code!!!!

    Dessen Funktionalität kann ich nicht beurteilen weil ich NICHT über die Import Zeilen hinaus komme.


    Das dachte ich hätte ich klar zum Ausdruck gebracht.

    Es ist mir zum Beispiel nicht gelungen für die Zeile from PIL import ImgageTk eine Lösung zu finden.
    Dazu gibt es bei Google über 7.000 Seiten.
    Ich habe etliche ausprobiert und es dann gelassen.

    Also noch einmal, Problem sind viele nicht aufzufindende Imports im Grafik Bereich.
    Es war halt nur frustierend, da willst Du was lernen und die meiste Zeit verbringst Du damit Import Dateien aufzuspüren bzw. eben nicht zu finden. Wobei ich das überwiegend mit meinem Ubuntu PC machte, Raspberry nur wenn explizit die Kamera gefragt war.

    Naja, es hat aber auch einiges gebracht. Schau mal was ich so alles fabriziert habe:

    https://github.com/villamarinella

    Und noch etwas zu opencv.
    Ich habe es zweimal probiert, es ist mir nicht gelungen das zu installieren, weder auf Ubuntu noch auf raspberry.
    Mein Raspberry brauchte ja auch NUR ca. 24 Stunden um etwas aus mehreren hundert MB zu compilieren wovon ICH nur eine simple Datei benötige, die cv2.so.
    Ich habe ALLE Python samples in opencv durchgearbeitet, mehr als cv2.so wird nicht benötigt, wozu also der ganz Krempel drumrum? Leider gibt es da ein Programm das mich sehr interessiert, nur halt eben Python3 und cv2.so.
    Sonst hätte ich das garnicht erst versucht, ich habe alles super Laufen, von der Gesichtserkennung, Kennzeichen erkennen, meine Besucher werden mit Namen begrüsst, sofern bekannt.
    Ich weiss schon wovon ich rede. Wenn Du eine cv2.so für Raspi und Python3 hast, schick sie mir einfach. Momentan versucht der Autor der Software in den USA mir zu helfen.
    Es geht um diese Software:
    https://gregtinkers.wordpress.com/2016/03/25/car-speed-detector/

    VM

  • Hallo,

    Zitat

    Es ist mir zum Beispiel nicht gelungen für die Zeile from PIL import ImgageTk eine Lösung zu finden.


    AFAIK ist das in den älteren Versionen von pillow nicht drin...

    Kannst du aber leicht prüfen, in dem du eine Python-Shell öffnest und folgendes eingibst:

    [code=php]>>> import PIL
    >>> help(PIL)[/php]

    Dann bekommst du u.a. eine Liste "Package Contents", in der alle enthaltenen Module aufgelistet sind. ist darin `ImageTk` nicht enthalten, kannst du es natürlich auch nicht importieren.

    Zitat

    Naja, es hat aber auch einiges gebracht. Schau mal was ich so alles fabriziert habe:


    Dazu könnte man viel sagen. Aber ein genereller Tipp: bleib' bei EINER Sprache und mische nicht Deutsch und Englisch bei den Kommentaren und den Variablenname. Besser wäre natürlich alles Englisch, dann ist es "international lesbar".

    Gruß, noisefloor

  • Naja, ich lerne ja gerne immer dazu.

    So ist es mir dann gelungen python3 pip zu installieren und damit dann moviepy.
    Immerhin, das klappt ja dann ganz gut.

    Ich will Deine Angaben nicht kritisieren aber in dem einen speziellen Fall hier bringt das nicht viel.

    Text einblenden in 10 sec Video.


    Trotzdem danke, fühl mich jetzt schon sicherer weil ich in etwa weiss was zu tun ist.

    Naja, ich muss ja auch mal Python loben, die gleiche Prozedur mit ffmpeg ist eine Katastrophe!
    Da habe ich aufgegeben!


    VM

  • Leider habe ich nun wieder ein Problem.
    Auf Ubuntu läuft das script, auf Raspberry gibt es Fehler.

    Zuerst die Fehler:

    Und hier das script, wie gesagt auf Ubuntu PC ohne Probleme.


    VM

  • Plan B ging auch ins Leere.

    Ich kann mich jetzt entscheiden, habe ich Text im Video oder Sound, beides bekomme ich nicht hin.

    Plan B war Opencv, siehe Code

    Klappt auch prima, habe netten Text nur der Ton ist dann halt weg!

    Ich will ja nicht wieder meckern, aber die Dokumentation dazu.................
    Das mit dem Codec ist nirgends zu finden, welche gibt es, wie heissen sie usw.
    Nur immer wieder der Hinweis das OpenCV seine Befehle dauernd ändert.
    Hier reden wir über 2.4.9 und Python 2.
    Am fourcc hängt alles.

    VM

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!