Framework für flexible Grafiken gesucht

  • Hallo,


    ich möchte mich mit der grafischen Programmierung in Python beschäftigen.

    Ich suche eine Bibliothek, dies es mir ermöglicht meine Ziele zu erreichen.


    Ziele :

    - Kleine Jpg icons auf dem Bildschrim positionieren

    - Die Icons auf dem Bildschirm verschieben

    - Linien zwischen den icons ziehen

    - Anpassung der Linien bei verschieben des Icons

    - Verlauf der Linien durch Maus beeinflussbar


    Anforderungen:

    - Gute Dokumentation



    Vielen Dank für eure Unterstützung:angel:

    Wenn's brennt 112 hilft weiter!

  • Ja, ein wenig könnte ich noch sagen, allerdings kann es sein, das es mit Python ein wenig anders geht, ich arbeite nicht mit Python.


    - Kleine Jpg icons auf dem Bildschrim positionieren

    Du brauchst eine SDL_Surface, die bekommst du mit der Funktion IMG_Load, damit kannst du mit der Funktion SDL_CreateTextureFromSurface eine SDL_Texture bekommen, wobei dann die SDL_Surface wieder freigegeben werden sollte. Mit SDL_RenderCopy kannst du das Bild dann malen.


    - Die Icons auf dem Bildschirm verschieben

    Da für SDL_RenderCopy auch ein SDL_Rect(Rectangle) benötigt wird, kannst du davon die X und Y proprties ändern. Dank dem SDL_MouseMotionEvent kannst du beim klicksen(SDL_MouseButtonEvent) schauen, ob der cursor im SDL_Rect ist, wenn ja ein FLag setzen, solange Flag gesetzt(TRUE) das SDL_rect ändern, beim lösen des MouseButtons flag auf false.


    - Linien zwischen den icons ziehen

    Kurz:

    https://wiki.libsdl.org/SDL_RenderDrawLine


    - Verlauf der Linien durch Maus beeinflussbar

    Da müsste ich selbst noch schauen, wobei man Startposition und Ende kennt, so also auch berechenen kann ob auf der Linie geklickt wurde. Dann wie beim verschieben der JPGs die Koordinaten auswerten und das passend zeichnen.


    Wobei ich nicht die Events direkt nutzen würde, die kommen sehr oft verspätet, also selbst in der main-loop pollen.


    Vllt. hilft dir mein Experimentalcode(Gurkencode) meiner 1. Testversion weiter, kleines Musikprogramm das in RetroPie zum einsatz kommen wird. Zumindest ist ersichtlich wie das SDL in etwa abläuft. Auch würde ich um die Performence zu erhalten, bzw. die Last die das programm erzeugt gering zu halten, nur neu zeichnen lassen, wenn was geändert wurde.


    Ich leide an Verfolgungswahn... :daumendreh2: Ha, da ist schon wieder einer! :denker:

    6 Mal editiert, zuletzt von Noide ()

  • Hi, Danke für deine Erklärungen. Allerdings muss ich leider sagen, dass mir eine Bibliothek die direkt in Python läuft lieber ist - ohne Wrapper.


    Ich werde dennoch deine Hinweise mir in Ruhe anschauen.

    Wenn's brennt 112 hilft weiter!

    Einmal editiert, zuletzt von raspbastler () aus folgendem Grund: Fehlende Wörter ergänzt

  • Allerdings muss ich leider sagen, dass mir eine Bibliothek die direkt in Python läuft - ohne Wrapper.

    ...lieber ist? Warum? Soo unüblich sind solche Wrapper doch gar nicht, die gibt's für alles mögliche. Im Grunde sind zum Beispiel alle gängigen GUI-Bibliotheken Wrapper zur C/C++/API.

  • OT: SDL2 ist wirklich gut, um diese These zu untermauern kann ich sagen das Anno auch SDL2 nutzt.(Weiss aber nicht ob's bei allen Teilen so ist, bei Anno 2205 hab ich grad mal durch die Ordner geschaut, da ist es so)

    Ich leide an Verfolgungswahn... :daumendreh2: Ha, da ist schon wieder einer! :denker:

    Einmal editiert, zuletzt von Noide ()

  • ct 6/2017 Raspi als Internet-Radio mit Touch-Bedienung

    ct 7/2017 GUI-Entwicklung mit Kivy für Python

    ct 10/2017 Raspi-Radio, Kivy angewandt, Screensaver und eigene Senderlisten (benutzt radio.de)


    Im ersten Artikel wird kivy und cython aus Sourcen für Raspian erzeugt.

    Jetzt gibt es kivy mit pipaos als image.

    Es gibt Tutorials für kivy.

    Kivy programme enthalten die Beschreibung der grafischen Oberfläche und Code in Python