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

  1. Tkinter ScrollBar
  2. 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 に接続する必要があります。

comments powered by Disqus