[Python] Tkinter Listbox Scrollbar Arrangement

  • Morgen Leute, ich habe mal ne Frage ob mir jemand bei der Problematik von der Ausrichtung und Arrangement von zwei Listboxen mit V und H Scrollbars weiterhelfen kann mittels Tkinter

    Das ist der Code dazu nur leider werden die Listboxen inkl. Scrollbars nicht untereinander gestellt sondern geschachtelt.

    forum.linuxguides.de/core/index.php?attachment/5684/

    Stehe als Einsteiger mit Brett vorm Kopf ziemlich an, denn wie auch immer ich TOP/LEFT/RIGHT/BOTTOM anwende, sie stehen nicht untereinander.

    LG

  • Zur hilfreichsten Antwort springen
  • Gib mir mal 30 Min ich Fix dir das. Plus Erklärung

    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!

    Einmal editiert, zuletzt von Actionschnitzel (16. August 2023 um 10:23)

  • Soooo also! Ich hab Listen und die dazugehörigen Scrollbars in jeweils in einen Frame gepackt. Damit es besser aussieht habe ich das Padding entfernt. Kannst mich immer gerne fragen, wenn du was wissen willst.

    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!

  • vielen vielen Dank ihr beiden.

    Ich habe auf nicolettas wink die Zeilen auf

    Code
    # Create the scrollbar
    scrollbarv = tk.Scrollbar(listbox, orient=tk.VERTICAL)
    scrollbarh = tk.Scrollbar(listbox, orient=tk.HORIZONTAL)

    und

    Code
    # Create the scrollbar
    scrollbarv = tk.Scrollbar(listbox2, orient=tk.VERTICAL)
    scrollbarh = tk.Scrollbar(listbox2, orient=tk.HORIZONTAL)

    abgeändert und auch das würde funktionieren.

    Die Frage des Vorteils deiner Variante mit dem Verpacken in ein Frame wäre interessant

    Das mit dem Padding interessierte mich insofern da die Scrollbars innerhalb der Listbox eingesetzt werden. Das diese außerhalb angebunden werden konnte ich im Netz auf die Schnelle nicht eruieren.

    Nochmals vielen vielen Dank und habt Mitleid mit einem Newbie :saint:

  • Habe ich schon gesehen in den Dokumentationen von Tkinter.

    Anfänglich gar nicht so einfach aber ich bin guter Dinge.

  • Das wird schon :) Irgendwann ließt man Python wie Deutsch

    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!

  • Ich habs noch so gelernt. Code als Kommentar reinschreiben und dann in die jeweilige Programmiersprache übersetzten. :)

    na das hätte ich dann gerne mal für Lisp oder Prolog gesehen.

    Mein letztes Projekt ist sicher 8 Jahre her mit Swift 4 und einer App für TUS Brandmelder Koordinaten Verwaltung und Anfahrts- Routing bei der Feuerwehr.

    Das ging relativ simple mit XCODE leider haben sie die Geschicihte mit dem Sideloading auf 7 Tage beschränkt und in den Store wollte ich damit nicht, resp. durfte ich nicht wegen dem Datenschutz.

    Sprich man musste für die eigene App Jährlich 100.- Euro zahlen nur für die Benützung der eigenen App durchs Sideloading.

    die GTK4 BUILDER IDE ist extrem umfangreich und GLADE ist nicht mehr und wie Cambalanche mit GNOME BUILDER zusammenarbeitet ist undurchsichtig und es gibt keine Dokumentation dafür.

    GTK4 wäre sicher Interessant aber der Aufwand für mich als Pensionär etwas oversized. 8)

  • Wenn du dich auf mein niederes Niveau herunterlassen willst und mit Pascal arbeiten willst. Kann ich dir Lazarus ans Herz legen. Das ist eine IDE mit "what you see is what you get" Editor. Damit mache ich die wenigen graphischen Sachen die ich mache. Grundsätzlich mache ich das aber wirklich nach wie vor so. Einen Programm Ablauf Plan erstellen in guter alter Deutscher Sprache. Das was da drin steht dann auf Deutsch als Kommentar in den Code und zu guter letzt dann als Code in der Sprache drunter. Ich mein ist bestimmt nicht das non plus ultra hat mir bist jetzt aber immer geholfen.

    Link:

    Lazarus Homepage

  • Was auch noch sehr gut ist, ist gambas3 das ist für Basic. Da habe ich innerhalb einer Nacht ein kleines Videoschneide Programm gebaut. Bzw. nur das Frontend für eins. Nachteil hier wenn man das so nennen kann, ist halt ein Interpretersystem Code ist also Problemlos einsehbar.

    Link:

  • Danke dir, hab mal mit Thonny begonnen und nun auf VS-Code umgestellt zum Testen.

    schaut soweit recht gut aus. vor allem die Code Vervollständigung und das Bug-tracing ist interessant und hat mir gleich einen Fehler aufgezeigt den ich aus einer vorigen Version mitgenommen habe.

    Muss mich noch um das Syncen der Projekte kümmern. Schaut so aus als ob das nur über GIT und MS Konto geht =O

    wird schon werden.

    Gambas und Lazarus, dass erinnert mich an die Zeit von Turbopascal unter CP/M und Superbasic von Psion... das waren Zeiten :thumbup::D

  • Hmmm habe gerade eine Eigenart auf dem Laptop mit Visual Studio Code unter Fedora 38 als Flatpak installiert.

    Projekt geöffnet Python ausgewählt gestartet und VSC findet das Modul tkinter nicht????

    Strange unter Ubuntu als DEB läuft es Problemlos.

    Mal schauen ob das wieder so ein Rechteproblem mit Flatpak ist.

  • Hmmm habe gerade eine Eigenart auf dem Laptop mit Visual Studio Code unter Fedora 38 als Flatpak installiert.

    Projekt geöffnet Python ausgewählt gestartet und VSC findet das Modul tkinter nicht????

    Strange unter Ubuntu als DEB läuft es Problemlos.

    Mal schauen ob das wieder so ein Rechteproblem mit Flatpak ist.

    Das denke ich auch. Ich nehme Flatpaks nur für in sich geschlossene Apps. Nimm mal das RPM https://code.visualstudio.com/

    Wenns unbedingt Flatpak sein soll:
    https://flathub.org/apps/com.github.tchx84.Flatseal

    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

    Ich bin neugierig. Is dein CSV Editor nur eine Übung oder willst du da was größeres draus machen?

    Wenn du mehrere Spalten in der CSV hast wäre ttk.Treeview nämlich besser als eine tk.Listbox :)

    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!

  • Ja das war es und die RPM funktioniert wie erwartet. Es dürfte sich wirklich um das Sandboxing Flatpak bedingt handeln.

    Gott behüte nein, dass ist damit die Synapsen nicht vertrocknen. ;) Ich habe in einem Versuch an DENARO festgestellt, dass der Import als CSV durch das Format meiner Bank nicht unterstützt wird und die Formatierung Mittels LibreCalc oder anderen Editoren extrem mühsam und teils gar nicht möglich ist.

    Das möchte ich mit diesem Python Program soweit automatisieren, dass es auch andere Formate unterstützt.

    Was großes kommt mir da wahrlich nicht in den Sinn, es sollte einfach Spaß machen.

    Das mit ttk. Treeview ist wieder eine sehr gute Idee denn die Spaltenansicht inkl. der Manipulation der Spalten in Anzahl, Beschriftung und Typ/Format sollte auch möglich sein.

    Werde mir das gleich zu Gemüte führen zumal aus meiner CSV mit sechs Spalten ohne HeaderZeile eine Denaro CSV mit 14 Spalten mit Header werden muss mit korrigierten Spaltenpositionen

    Code
    ID;Date;Description;Type;RepeatInterval;RepeatFrom;RepeatEndDate;Amount;RGBA;UseGroupColor;Group;GroupName;GroupDescription;GroupRGBA
  • Hallo mal wieder mit ner Frage zu Python tkinter/Listbox/csv

    Ich habe für meine kleines csvconverter Projekt den Plan eine Ist/Soll Ansicht von zwei Listboxen die Oben den Ursprung und Unterhalb das Ergebnis anzeigen soll. Die Optionen sollten über Buttons/Checkboxen/Radiobuttons/Kombinationsfelder gesteuert werden.

    Aktuell bin ich dabei überschüssige Leerzeichen zu entfernen das aktuell zu Test mit einem Button ausgeführt wird. An dieser Stelle strauchelt mein Wissen um Python im aktuellen Zustand :saint:

    Anfänglich habe ich in einer Funktion nach dem Import über eine Dateiauswahl auf das CSV File zugegriffen und dies in einem Rutsch in ein Listenfeld - Listbox geladen und in der gleichen Funktion gleich die überschüssigen Leerzeichen mit entfernt. Dieses Ergebnis wurde in ein Listenfeld -Listbox2 übertragen und konnte sofort wieder über den Dialog Speichern als CSV gespeichert werden.

    Eigentlich perfekt.

    Jetzt wollte ich das ganze trennen und das entfernen auf einen Button legen.

    Als Funktion Auslesen von Listbox-entfernen der Leeräume - Eintragen in Listbox2

    Es tat aber nicht so wie ich wollte. Das Ergebnis war ein anderes und ich bin ein wenig Ratlos besser gesagt sehr Ratlos, denn auch das Abspeichern ändert den Inhalt aus Lisbox2 nochmals.

    als Ergebnis in der Listbox kommt

    1/23 01.01.23 {Test 1 Test 1} e m 01.01.23 o 2000 Green y y Gehalt non Green

    als Ergebnis in der Listbox2 kommt

    ('1/23', '01.01.23', 'Test 1 Test 1', 'e', 'm', '01.01.23', 'o', '2000', 'Green', 'y', 'y', 'Gehalt', 'non', 'Green')

    und als Reimport kommt in Listbox :/und fängt erst bei der zweiten Zeile an

    ( ,2,/,2,3, {"} {"} { } ,0,2,.,0,1,.,2,3, {"} {"} { } {,T,e,s,t, ,2,} {"} {"} { } ,e, {"} {"} { } ,m, {"} {"} { } ,0,2,.,0,1,.,2,3, {"} {"} { } ,o, {"} {"} { } ,1,0,0,0, {"} {"} { } , {"} {"} { } ,y, {"} {"} { } ,y, {"} {"} { } ,Z,u,l,a,g,e,n, {"} {"} { } ,n,o,n, {"} {"} { } ,n, )

    alles sehr speziell und ein echtes Abenteuer :thumbup:^^

Jetzt mitmachen!

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