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

Tkinterで水平スクロールバーを実装する方法【サンプルコード付き】

TkinterのScrollbar(スクロールバー)ウィジェットは、コンテナ要素やその内容にスクロール機能を持たせるための便利なウィジェットの一つです。スクロールバーを活用することで、大量のデータを効率的に閲覧できるようになります。

一般的に、Tkinterでは垂直・水平の両方のスクロールバーを追加できます。アプリケーションに水平スクロールバーを追加するには、Scrollbarのコンストラクタで向き(orientation)として「horizontal」を指定します。

サンプルコード

ここでは、水平スクロールバーを備えたテキストエディタを作成してみましょう。

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

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

# ウィンドウサイズを設定
win.geometry("700x350")

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

# テキストウィジェットを追加
text=Text(win, font=("Calibri, 16"), wrap=NONE, xscrollcommand=h.set)
text.pack()

# テキストウィジェットに文字列を挿入
for i in range(5):
   text.insert(END, "Welcome to Tutorialspoint...")

# スクロールバーとテキストウィジェットを連携
h.config(command=text.xview)

win.mainloop()

実行結果

上記のコードを実行すると、テキストが表示されたテキストエディタが起動します。テキストウィジェットには水平スクロールバーが組み込まれており、テキストが横幅を超えてあふれた場合に自動的に表示されます。

ポイントは以下の2点です。
orient='horizontal' を指定して水平方向のスクロールバーを作成する
・テキストウィジェット側の xscrollcommand=h.set と、スクロールバー側の command=text.xview を相互に設定して連携させる

このように双方向の連携設定を行うことで、スクロールバーの操作とテキストの表示位置が正しく同期されます。同様の手順はListboxやCanvasなど、他のウィジェットにも応用できます。

  1. 【Python】Tkinterでテキストボックス(テキストウィジェット)の内容を削除する方法

    Tkinterには、ボタン、ダイアログボックス、各種ウィジェットなど、本格的なGUIアプリケーションを構築するための豊富な関数やモジュールが用意されています。複数行のテキストを扱えるテキストウィジェットを作成するには、Textウィジェットを使用します。これはコンストラクタとして機能し、親となるウィンドウやフレームを指定して呼び出します。作成したテキストウィジェットの内容を削除するには、組み込みメソッドdelete(first, last=None)を使います。このメソッドは、削除対象となる範囲(開始位置と終了位置)を引数として受け取ります。この記事では、クリックするとテキストボックス内の内容を

  2. TkinterのEntryウィジェットにプレースホルダーを追加する方法

    Tkinterは、ボタン、テキスト、エントリ(Entry)、ダイアログなどのウィジェットを提供しており、これらを組み合わせることでGUIアプリケーションを効率的に開発できます。しかし、TkinterのEntryウィジェットには、標準ではプレースホルダーの機能が用意されていません。 プレースホルダーとは、入力欄にあらかじめ表示される仮のテキストのことで、「ここに何を入力すればよいか」をユーザーに伝える重要な役割を果たします。 本記事では、insert(挿入位置, テキスト) 関数を使って、Entryウィジェットにプレースホルダーを追加する方法を解説します。この関数は、第1引数に挿入位置(先頭なら