GUI

Python Tkinter widgets 発展的なウィジェット(10) Scrollbar

s = ttk.Scrollbar(parent, orient=VERTICAL, command=lb.yview)
lb.configure(yscrollcommand=s.set)

他のUIツールキットと異なり、Tk のスクロールバーは他のウィジェット (例えばリストボックス) の一部ではなく、完全に別のウィジェットになっている。その代わり、スクロールバーはスクロールされたウィジェットのメソッドを呼び出すことでスクロールされたウィジェットと通信する。

orient設定オプションは、水平方向と垂直方向のどちらの方向にウィジェットをスクロールさせるかを指定できる。command設定オプションを使って、スクロールされたウィジェットとどのように通信するかを指定できる。スクロールバーが動いたときにスクロールされたウィジェット上で呼び出されるメソッドを指定できる。

垂直方向にスクロールできるすべてのウィジェットには yview という名前のメソッドがあり、水平方向にスクロールできるウィジェットには xview という名前のメソッドがある。スクロールバーが操作されると、メソッド呼び出しにいくつかのパラメータが追加され、どのようにスクロールされたのか、どの位置にあるのか、などが示される。

また、スクロールされたウィジェットはスクロールバーと通信する必要があり、コンテンツ領域全体の何パーセントが表示されるようになったかを知らせる。yview や xview メソッドに加えて、すべてのスクロール可能なウィジェットには yscrollcommand や xscrollcommand 設定オプションがある。これはメソッドの呼び出しを指定するために使用され、スクロールバーのsetメソッドである必要がある。この場合も、追加のパラメータは自動的にメソッド呼び出しに付加される。