Python
 Computer >> コンピューター >  >> プログラミング >> Python

Tkinterで垂直・水平スクロールバーを作成する方法を徹底解説


スクロールバーは、アプリケーションに動的な操作性を持たせるために非常に便利なウィジェットです。Tkinterでは、垂直方向と水平方向の両方のスクロールバーを簡単に作成できます。スクロールバーは、Scrollbar()ウィジェットのオブジェクトを初期化することで生成されます。

水平スクロールバーを作成する場合は、orientオプションに「HORIZONTAL」または「VERTICAL」を指定して向きを設定します。さらに、対象となるウィジェット(TextやListboxなど)とスクロールバーを連携させる設定を行うことで、初めて実際に操作できるようになります。

コード例

# 必要なライブラリをインポート
from tkinter import *

# Tkinterフレームのインスタンスを作成
win = Tk()

# フレームのサイズを設定
win.geometry("700x350")

# 表示用のダミーテキストを用意
text_v = "Python is dynamically-typed and garbage-collected. It supports multiple programming paradigms, including structured (particularly, procedural), object-oriented and functional programming."
text_h = ("\nNASA \n Google \nNokia \nFacebook \n Netflix \n Expedia \n Reddit \n Quora \n MIT\n Udemy \n Shutterstock \nSpotify\nAmazon\nMozilla\nDropbox")

# 垂直スクロールバーを追加
scroll_v = Scrollbar(win)
scroll_v.pack(side=RIGHT, fill="y")

# 水平スクロールバーを追加
scroll_h = Scrollbar(win, orient=HORIZONTAL)
scroll_h.pack(side=BOTTOM, fill="x")

# Textウィジェットを追加
text = Text(win, height=500, width=350, yscrollcommand=scroll_v.set,
xscrollcommand=scroll_h.set, wrap=NONE, font=('Helvetica 15'))
text.pack(fill=BOTH, expand=0)
text.insert(END, text_v)
text.insert(END, text_h)

# スクロールバーをTextウィジェットに連携
scroll_h.config(command=text.xview)
scroll_v.config(command=text.yview)

win.mainloop()

ポイント解説

  • side=RIGHT, fill="y":垂直スクロールバーをウィンドウ右端に縦方向いっぱいに配置します。
  • orient=HORIZONTAL:スクロールバーの向きを水平に指定します。
  • yscrollcommand / xscrollcommand:Textウィジェット側のスクロール状態をスクロールバーに同期させます。
  • config(command=...):スクロールバーの操作をTextウィジェットの表示領域に反映させます。
  • wrap=NONE:テキストの折り返しを無効にすることで、水平スクロールが有効になります。

実行結果

上記のコードを実行すると、Pythonプログラミング言語に関するテキストが表示されたウィンドウが開きます。垂直・水平の両方のスクロールバーを操作することで、ウィンドウに収まりきらない長いコンテンツも動的に閲覧できます。

Tkinterで垂直・水平スクロールバーを作成する方法を徹底解説


  1. Tkinterでテキストウィジェットにスクロールバーを追加する方法

    Tkinterのテキストウィジェット(Text Widget)は、複数行にわたるユーザー入力を受け付けるためのウィジェットです。エントリーウィジェット(Entry Widget)とよく似ていますが、最大の違いはテキストウィジェットが複数行のテキスト入力をサポートしている点にあります。テキストウィジェットを作成するには、まずテキストオブジェクトをインスタンス化します。 複数行のテキストを扱う場合、内容がウィジェットの表示領域を超えることがあるため、スクロールバーの追加が不可欠です。テキストウィジェットにスクロールバーを追加するには、ScrolledText(root) 関数を使用します。この関数

  2. Tkinterでウィジェットを表示・非表示に切り替える方法

    GUIアプリケーションを開発していると、状況に応じてウィジェットを表示したり非表示にしたりしたい場面が出てきます。Tkinterでは、この操作を非常に簡単に実装できます。ウィジェットを非表示にするには、pack_forget() メソッドを使用します。非表示にしたウィジェットを再び表示するには、pack() メソッドを使用します。どちらのメソッドも、lambda式(無名関数)を使ってボタンのcommand引数に渡すことで、手軽に呼び出すことができます。サンプルコード# 必要なライブラリをインポート from tkinter import * # tkinterフレームのインスタンスを作成 w