Tkinter チュートリアル - スクロールバー
胡金庫
2023年1月30日
Tkinter
Tkinter Scrollbar
Tkinter Scrollbar ウィジェットは、通常、ListBox、Text、または 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()

self.scrollbar = tk.Scrollbar(self.window)
Scrollbar インスタンスを開始します。
self.listbox = tk.Listbox(self.window, yscrollcommand=self.scrollbar.set)
self.scrollbar.config(command=self.listbox.yview)
それらを正しく接続するには、Listbox と Scrollbar の両方を設定する必要があります。
yscrollcommandコールバックをScrollbarのsetに設定します。yscrollcommandはスクロール可能なウィジェットのオプションであり、スクロールバーによって制御され、と通信するために使用されます垂直スクロールバー。ScrollbarのcommandをListboxのyviewに設定します。ユーザーが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()

self.scrollbar = tk.Scrollbar(self.window, orient=tk.HORIZONTAL)
orient を HORIZONTAL に指定することにより、水平スクロールバーを開始します。
self.text = tk.Text(self.window, wrap="none", xscrollcommand=self.scrollbar.set)
テキストを水平方向にスクロールするには、xscrollcommand を Scrollbar の set メソッドに設定する必要がありますが、上記の例のように yscrollcommand を設定する必要はありません。
self.scrollbar.config(command=self.text.xview)
同様に、水平スクロールバーのコールバックは、xview メソッドではなく yview に接続する必要があります。
チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
