[Python] Tkinter Listbox Scrollbar Arrangement

    • Best Answer

    Ich gucke mal rein. Hier nochmal aus meine "Reihe Spaß mit Python :-D" Strom und Gas Tracker. Vllt kannst du da ja noch was raus ziehen:

    https://github.com/actionschnitzel/strom_gas_rechner

    Work-PC: LMDE | Surface Go2: LMDE | Server: Ubuntu Server | Laptop: Linux Mint |

    Raspberry Pis: PiOS Lite arm64 | Steam Deck


    Auf Linux seit 2003 | Python-Jünger|

    Mein Tool um das Desktop-Erlebnis auf dem Raspberry Pi zu verbessern: PiGro - Just Click It!

  • Meinst du sowas in der Art?


    Code
    def move_data():
     # Get the selected items from listbox1
     for item in listbox.get(0, 'end'):
     item = str(item).strip() # Remove leading and trailing spaces
     if item: # Check if the item is not empty
     print(item)
     listbox2.insert(tk.END, item)

    Work-PC: LMDE | Surface Go2: LMDE | Server: Ubuntu Server | Laptop: Linux Mint |

    Raspberry Pis: PiOS Lite arm64 | Steam Deck


    Auf Linux seit 2003 | Python-Jünger|

    Mein Tool um das Desktop-Erlebnis auf dem Raspberry Pi zu verbessern: PiGro - Just Click It!

  • Leider nein, hast Du dir die beiden Versionen von mir angesehen?

    Die erste Version ohne Button zieht in einem Rutsch die CSV Datei durch und in beiden Listboxes/2 stehen die gleichen Formatierungen. Auch der Export als CSV übergibt die richtige Formatierung wie bei neuerlichen Import zu sehen.


    Die Variante mit dem Button mach schon eine andere Formatierung beim entfernen der Leerzeichen. Der Export der aus dem veränderten Listbox2 Inhalt zurückgeschrieben wird ist komplett verstümmelt.


    Danke für deinen Code, aber auch dieser formatiert nicht richtig und löscht in diesem Fall auch keine mehrfach Leerzeichen

  • Wie kommen denn in die CSV Leerzeichen?

    Komisch Formatiert?

    Ich bin immer noch der Meinung, das Listbox hier falsch ist und treeview mehr sinn macht wegen der rows und columns.

    Hab ich dir mal schnell gebastelt.



    Work-PC: LMDE | Surface Go2: LMDE | Server: Ubuntu Server | Laptop: Linux Mint |

    Raspberry Pis: PiOS Lite arm64 | Steam Deck


    Auf Linux seit 2003 | Python-Jünger|

    Mein Tool um das Desktop-Erlebnis auf dem Raspberry Pi zu verbessern: PiGro - Just Click It!

  • Das CSV ist der Download der Kontoauszüge vom Bankenportal.


    Ich habe das File nur nachgebildet ohne Bankdaten 8)


    Die meisten Leerzeichen sind im Buchungstext und diese unterschiedlich viele

  • keine Frage, dass ist sensationell aber es ist mit vordefinierter Formatierung behaftet


    Die Problematik die ich als Ziel abgesteckt habe ist.


    Am Beispiel von meiner Bank kommend mit sechs Spalten auf eine bspw. denaro 14 Spalten CSV zu konvertieren.

    Sprich die Spalten erweitern, die Spalten an die richtigen Positionen verschieben, alle+1Leerzeichen entfernen, leere spalten mit Vorgaben befüllen, Trennzeichen wechseln (von , auf ;) usw.


    Obig sollte die Orig. Datei angezeigt werden, unterhalb die quasi Vorschau.

    Alle Parameter auswählen wenn nötig und via Button aktualisieren und danach speichern.

  • Ok, das ist ambitioniert. Fernhilfe ist immer kompliziert bei sowas. ich kann dir nochmal empfehlen den kompletten Python/Tkinter-Kurs von Codemy.com auf Youtube anzugucken. Der hatte auch mal ne Lösung für mein damaliges Listbox-Problem:

    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


    Das ist die komplett Playlist und der Mann ist sehr sehr gut.

    Work-PC: LMDE | Surface Go2: LMDE | Server: Ubuntu Server | Laptop: Linux Mint |

    Raspberry Pis: PiOS Lite arm64 | Steam Deck


    Auf Linux seit 2003 | Python-Jünger|

    Mein Tool um das Desktop-Erlebnis auf dem Raspberry Pi zu verbessern: PiGro - Just Click It!

  • Der ist in meinem Abo und wirklich gut.


    Die Treeview sind wirklich klasse und ich muss mal schauen welche Parameter dabei zu Verfügung stehe.


    Ist das wirklich zu ambitioniert...? Ich dachte eher CSV Manipulation ist so ein gangbarer Einstieg.


    Zu meiner Zip und warum das leider auseinander fällt stellt sich die Frage für mich schon woran das liegen könnte.

    Hast du die beiden Versionen durchlaufen lassen? Im Debugger von VSC kommt mir vor, das sich der Inhalt vom Typ her ändert.

  • Also ich hab mir mein Sparkassen.csv angesehen und ein Denaro.csv mit Denaro gemacht.


    Man müsste im Grunde jede Zeile einzeln auslesen, und dann sagen:


    schreibe Attribut 1(Datum) in dinaro.csv spalte 1, Attribut 2(Verwendungszweck) in spalte 4 ... usw.

    Dann bleibt das Problem der Meta-Daten wie Farbe und Gruppen, das kann man schlecht automatisieren.

    Da musstest du manuell dran und eine Datenbank anlegen mit Optionen zum auswählen, oder ganz stumpf selber reinschreiben.


    Das ist aber mehr Backend-Code als Tkinter-Code. Das liegt nicht an Leerzeichen oder so. Das ist eine echte Fleißarbeit, Deswegen werden die IT-Leute bezahlt.

    Work-PC: LMDE | Surface Go2: LMDE | Server: Ubuntu Server | Laptop: Linux Mint |

    Raspberry Pis: PiOS Lite arm64 | Steam Deck


    Auf Linux seit 2003 | Python-Jünger|

    Mein Tool um das Desktop-Erlebnis auf dem Raspberry Pi zu verbessern: PiGro - Just Click It!

  • Also auch bei dir und nicht nur bei meiner Cerberus/BAWAG Csv.


    In KMyMoney ist so ein ähnliches Tool vorhanden aber eben für diese Applikation.


    Na ja, ich forsche mal weiter und melde mich.


    Treeview ist schon mal ein Ansatz.

    Sollte dir eventuell etwas einfallen wo der Unterschied in meinen beiden Varianten liegt die diese Eigenschaft erzeugt, wäre ich dankbar.


    Ich habe hier noch aus dem Debugger den Unterschied ausgearbeitet. Wo ich dieses Feature ändern kann sehe ich nicht wirklich.

  • So kurze Rückmeldung, ich habe den Fehler gefunden.

    Der Fehler lag am Verständnis wieder Listeninhalt nach dem einlesen tatsächlich aussieht.

    Die Spaltenseparatoren wurden beim einlesen nicht mit übergeben. Ein Listenelement macht aus einer Zeile aus allen Spalten ein Item Typ String welches mit join in den Separatoren konfiguriert werden muss um die Spaltenanzahl beizubehalten.

    Mein Separator ";" voreingestellt übernimmt beim Import die Formatierung und kann im weiterem Programm in Zukunft auch geändert werden.


    Langsam geht's vorwärts, aber oft ist der Blackout nahe ^^


    Das ganze werd ich aber trotzdem auch mit treeview versuchen.

  • Rückmeldung von der Front,


    Danke für den Schub's mit Tableview, das hat funktioniert die CSV einzuspielen, war aber am Ende ganz andere Probleme auf.

    Man sieh zwar die Gliederung so sie mit CSV Import 100% verstanden wird was nicht immer der Fall ist.

    Leider werden die Trennzeichen nicht angezeigt wie in der Listbox.

    Des weiteren habe ich mit der Skalierung von Tableview bei großen Spaltenzahlen alle sichtbar zu bekommen.

    Aktuell habe ich aber ein sensationelles Tool dafür gefunden "pygubu-designer" der wirklich gut unterstützt und Tkinter resp tk und ttk wirklich gut erklärt und sich gut in die Arbeit mit VSC einfügt.


    Das ist mit der CVS Konvertierung für mich solche Hürden generiere war ich mir nicht bewusst.

    Da ich bei der Recherche im Netz Hilfe suchte, wurde mir erst im laufe der Zeit klar, dass mit dem simplen CSV Format ziemlich viele Troubles entstehen können.


    Aktuell bin ich am testen ob laut Web der Import über Pandas nicht der bessere wäre.

    Es würde zwar mit Kanonen auf Spatzen geschossen, aber das spielt im Ergebnis wenn es passt keine Rolle.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!