[Python] Tkinter Listbox Scrollbar Arrangement

  • Einmal bitte den ganzen Code :) Zip oder Tar und als Anhang posten

    Work-PC: Debian 12 + Gnome | Surface Go2: Ubuntu 24.04 + Surface-Kernel | Server: Ubuntu Server 22.04 | Laptop: Linux Mint 21.2 |

    Raspberry Pi4s: PiOS Lite arm64 | Raspberry Pi5: Ubuntu 24.04 | 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!

    • Hilfreichste Antwort

    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: Debian 12 + Gnome | Surface Go2: Ubuntu 24.04 + Surface-Kernel | Server: Ubuntu Server 22.04 | Laptop: Linux Mint 21.2 |

    Raspberry Pi4s: PiOS Lite arm64 | Raspberry Pi5: Ubuntu 24.04 | 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!

  • Fedorauser 21. August 2023 um 15:50

    Hat einen Beitrag als hilfreichste Antwort ausgewählt.
  • 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: Debian 12 + Gnome | Surface Go2: Ubuntu 24.04 + Surface-Kernel | Server: Ubuntu Server 22.04 | Laptop: Linux Mint 21.2 |

    Raspberry Pi4s: PiOS Lite arm64 | Raspberry Pi5: Ubuntu 24.04 | 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 forum.linuxguides.de/core/index.php?attachment/5771/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: Debian 12 + Gnome | Surface Go2: Ubuntu 24.04 + Surface-Kernel | Server: Ubuntu Server 22.04 | Laptop: Linux Mint 21.2 |

    Raspberry Pi4s: PiOS Lite arm64 | Raspberry Pi5: Ubuntu 24.04 | 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:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

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

    Work-PC: Debian 12 + Gnome | Surface Go2: Ubuntu 24.04 + Surface-Kernel | Server: Ubuntu Server 22.04 | Laptop: Linux Mint 21.2 |

    Raspberry Pi4s: PiOS Lite arm64 | Raspberry Pi5: Ubuntu 24.04 | 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: Debian 12 + Gnome | Surface Go2: Ubuntu 24.04 + Surface-Kernel | Server: Ubuntu Server 22.04 | Laptop: Linux Mint 21.2 |

    Raspberry Pi4s: PiOS Lite arm64 | Raspberry Pi5: Ubuntu 24.04 | 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!

  • 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.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!