Tkinter Tutorial - Scrollbar

Jinku Hu 25 Juni 2020
  1. Tkinter ScrollBar
  2. Tkinter Horizontaler Scrollbar
Tkinter Tutorial - 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.

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook