@Loster_Paddel: Lass doch einfach mal den `geometry()`-Aufruf weg. Wobei das auch ein bisschen ”gefährlich” ist `side` so zu mischen. Das hätte auch anders ausgehen können. Ich würde in einem Container immer den gleichen `side`-Wert nehmen.
Ansonsten: Sternchen-Importe sind Böse™. Da holt man sich gerade bei `tkinter` fast 140 Namen ins Modul von denen nur ein kleiner Bruchteil verwendet wird. Auch Namen die gar nicht in `tkinter` definiert werden, sondern ihrerseits von woanders importiert werden. Das macht Programme unnötig unübersichtlicher und fehleranfälliger und es besteht die Gefahr von Namenskollisionen.
Auf Modulebene sollte nur Code stehen der Konstanten, Funktionen, und Klassen definiert. Das Hauptprogramm steht üblicherweise in einer Funktion die `main()` heisst.
Namen werden in Python klein_mit_unterstrichen geschrieben. Ausnahmen sind Konstanten (KOMPLETT_GROSS) und Klassen (PascalCase).
Wenn es eine Konstante im `tkinter`-Modul für Werte mit festen Bedeutungen gibt, sollte man die verwenden, statt eine literale Zeichenkette mit dem Wert zu verwenden.
Code: Alles auswählen
#!/usr/bin/env python3
import tkinter as tk
def main():
root = tk.Tk()
root.title("Test mit Scrollbars und Listboxen")
namen = ["Justus", "Peter", "Bob"]
punkte = [7, 10, 9]
tk.Label(root, text="Listen", pady=10).pack()
frame = tk.Frame(root)
scrollbar = tk.Scrollbar(frame)
namensbox = tk.Listbox(frame, yscrollcommand=scrollbar.set, width=20)
namensbox.insert(0, *namen)
punktebox = tk.Listbox(frame, yscrollcommand=scrollbar.set, width=20)
punktebox.insert(0, *punkte)
namensbox.pack(side=tk.LEFT)
punktebox.pack(side=tk.LEFT)
scrollbar.pack(side=tk.LEFT, fill=tk.Y)
frame.pack()
root.mainloop()
if __name__ == "__main__":
main()