はじめに
tkinterにてText領域に縦スクロールバーを表示する方法を紹介します。
また、縦スクロールバーをマウスでつかんで上下に動かす方法もあわせて紹介しています。
Text領域に縦スクロールバーを表示する際の参考になれば幸いです。
開発環境
・WSL2/Ubuntu環境
・Python: 3.10.12
Text領域で縦スクロールバーを表示する方法
sample_bar_vertical_scroll.py
import tkinter as tk
from tkinter import Text
# configure root
root = tk.Tk()
root.title("Sample_Bar_Vertical_Scroll")
root.geometry("800x600")
# display bar_vertical_scroll
bar_vertical_scroll = tk.Scrollbar(root, orient=tk.VERTICAL)
bar_vertical_scroll.pack(side=tk.RIGHT, fill=tk.Y)
# make text
area_text = Text(root, wrap="word", undo=True, yscrollcommand=bar_vertical_scroll.set)
area_text.pack(fill="both", expand=True)
# configure bar_vertical_scroll
bar_vertical_scroll.config(command=area_text.yview)
# display window
root.mainloop()
プログラムの動作
# display bar_vertical_scroll
tk.Scrollbarでスクロールバーを作成し、side=tk.RIGHTで縦スクロールバーを右側に配置しています。
# make text
Text領域を作成し、yscrollcommand=bar_vertical_scroll.setにてText領域がスクロールされた際に、縦スクロールバーの位置を更新します。この設定だけでもText領域を十字キーで上下に動くと、縦スクロールバーも上下に動きます。ただ、マウスで縦スクロールバーを動かしてもText領域は上下に動きません。
# configure bar_vertical_scroll
縦スクロールバーが上下に動いた際、Text領域の表示位置を更新します。この設定を含めることで、マウスで縦スクロールバーを動かすとText領域も上下に動きます。
参考文献
本記事は以下情報を参考にして執筆しました。