TUTORIAL · Tkinter

Tkinter チュートリアル - スクロールバー

このチュートリアルでは、Python Tkinter のスクロールバーを紹介します。

Tkinter Scrollbar ウィジェットは、通常、ListBoxText、または Canvas のようなウィジェットを垂直に、または Entry を水平にスクロールするために使用されます。スライダーが正しい位置に表示されます。

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)

Scrollbar インスタンスを開始します。

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

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

それらを正しく接続するには、ListboxScrollbar の両方を設定する必要があります。

  1. yscrollcommand コールバックを Scrollbarset に設定します。yscrollcommand はスクロール可能なウィジェットのオプションであり、スクロールバーによって制御され、と通信するために使用されます垂直スクロールバー。
  2. ScrollbarcommandListboxyview に設定します。ユーザーが Scrollbar のスライダーを動かすと、適切な引数で yview メソッドを呼び出します。

Tkinter 水平スクロールバー

水平スクロールバーは、テキストエントリなどのウィジェットを水平方向にスクロールするために使用されます。

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 Horizo​​ntal

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

orientHORIZONTAL に指定することにより、水平スクロールバーを開始します。

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

テキストを水平方向にスクロールするには、xscrollcommandScrollbarset メソッドに設定する必要がありますが、上記の例のように yscrollcommand を設定する必要はありません。

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

同様に、水平スクロールバーのコールバックは、xview メソッドではなく yview に接続する必要があります。