Tkinter Tutorial - Scrollbar

  1. Tkinter ScrollBar
  2. Tkinter Horizontaler Scrollbar

Das Tkinter Scrollbar-Widget wird normalerweise verwendet, um Widgets wie ListBox, Text oder Canvas vertikal oder Entry horizontal zu scrollen. Es zeigt einen Schieberegler in der richtigen Position an.

Tkinter ScrollBar

import tkinter as tk

class Scrollbar_Example:
    def __init__(self):
        self.window = tk.Tk()

        self.scrollbar = tk.Scrollbar(self.window)
        self.scrollbar.pack(side="right", fill="y")

        self.listbox = tk.Listbox(self.window, yscrollcommand=self.scrollbar.set)
        for i in range(100):
            self.listbox.insert("end", str(i))
        self.listbox.pack(side="left", fill="both")

        self.scrollbar.config(command=self.listbox.yview)

        self.window.mainloop()


if __name__ == '__main__':
    app = Scrollbar_Example()  

Tkinter Scrollbar Basic

self.scrollbar = tk.Scrollbar(self.window)

Es initiiert die Scrollbar-Instanz.

self.listbox = tk.Listbox(self.window, yscrollcommand=self.scrollbar.set)
.
.
self.scrollbar.config(command=self.listbox.yview)

Wir müssen sowohl die Listbox als auch die Scrollbar konfigurieren, um sie korrekt miteinander zu verbinden.

  1. Setzen Sie den yscrollcommand Rückruf auf set von Scrollbar. yscrollcommand ist eine scrollbare Widget-Option, die durch einen Scrollbar gesteuert wird und zur Kommunikation mit vertikalen Scrollbars verwendet wird.
  2. Setzen Sie command des Scrollbars auf die Ansicht der Listbox. Wenn der Benutzer den Schieberegler des Scrollbars bewegt, ruft er die yview-Methode mit dem richtigen Argument auf.

Tkinter Horizontaler Scrollbar

Die horizontale Bildlaufleiste wird verwendet, um die Widgets wie Text und Eingabe in der horizontalen Ausrichtung zu scrollen.

import tkinter as tk

class Scrollbar_Example:
    def __init__(self):
        self.window = tk.Tk()

        self.scrollbar = tk.Scrollbar(self.window, orient=tk.HORIZONTAL)
        self.scrollbar.pack(side="bottom", fill="x")

        self.text = tk.Text(self.window,
                            wrap = "none",
                            xscrollcommand=self.scrollbar.set)
        
        self.text.insert("end", str(dir(tk.Scrollbar)))
        self.text.pack(side="top", fill="x")

        self.scrollbar.config(command=self.text.xview)

        self.window.mainloop()


if __name__ == '__main__':
    app = Scrollbar_Example()  

Tkinter Scrollbar Horizontal

self.scrollbar = tk.Scrollbar(self.window, orient=tk.HORIZONTAL)

Er initiiert einen horizontalen Scrollbalken, indem er die orient als HORIZONTAL festlegt.

self.text = tk.Text(self.window,
                            wrap = "none",
                            xscrollcommand=self.scrollbar.set)

Um den Text horizontal zu scrollen, muessen wir xscrollcommand auf die set Methode des Scrollbar setzen, aber nicht yscrollcommand wie im obigen Beispiel.

self.scrollbar.config(command=self.text.xview)

Entsprechend sollte der Callback des horizontalen Scrollbars mit der xview Methode verbunden werden, aber nicht yview.

comments powered by Disqus