TkinterのTextウィジェットでテキストをワードラップ(折り返し)表示する方法
ワードラップ(折り返し)は、テキスト情報を扱う上で非常に重要な機能です。優れたテキストエディタには欠かせない要素であり、長い文章を適切な位置で改行して複数行に分割することで、ドキュメントの幅に合わせてコンテンツをきれいに収めます。
Tkinterでは、Textウィジェットのwrapオプションを使用することで、単語単位・文字単位での折り返しが簡単に実現できます。wrapオプションに指定できる値は以下の3つです。
- WORD:単語の途中で改行せず、単語単位で折り返します
- CHARS:文字単位で折り返します(単語の途中でも改行されます)
- NONE:折り返しを行いません
サンプルコード
次の例では、wrapオプションに「WORD」を指定して、Textウィジェット内のテキストを単語単位で折り返しています。
# tkinterライブラリをインポート
from tkinter import *
from tkinter import ttk
# Tkinterフレーム(ウィンドウ)のインスタンスを作成
win = Tk()
# ウィンドウサイズを設定
win.geometry("750x250")
# Textウィジェットを作成し、単語単位で折り返すよう設定
text = Text(win, wrap=WORD)
text.insert(INSERT, "Python is an interpreted, high-level and general-purpose programming language. Python's design philosophy emphasizes code readability with its notable use of significant indentation.")
text.pack()
win.mainloop()
実行結果
上記のコードを実行すると、テキストが表示されたウィンドウが起動します。テキストが単語単位で折り返されているため、英文が単語の途中で切れることなく、読みやすい状態で表示されます。

補足:CHARSを指定した場合との違い
wrap=CHARS を指定した場合は、ウィジェットの幅に達した時点で強制的に文字単位で改行されるため、英単語が途中で分断されて表示されます。英語の文章を扱う場合は WORD を指定するのが一般的です。一方、日本語のように単語間にスペースがないテキストでは、どちらを指定しても見た目の違いはほとんどありません。
-
【Python】Tkinterでテキストボックス(テキストウィジェット)の内容を削除する方法
Tkinterには、ボタン、ダイアログボックス、各種ウィジェットなど、本格的なGUIアプリケーションを構築するための豊富な関数やモジュールが用意されています。複数行のテキストを扱えるテキストウィジェットを作成するには、Textウィジェットを使用します。これはコンストラクタとして機能し、親となるウィンドウやフレームを指定して呼び出します。作成したテキストウィジェットの内容を削除するには、組み込みメソッドdelete(first, last=None)を使います。このメソッドは、削除対象となる範囲(開始位置と終了位置)を引数として受け取ります。この記事では、クリックするとテキストボックス内の内容を
-
TkinterのEntryウィジェットにプレースホルダーを追加する方法
Tkinterは、ボタン、テキスト、エントリ(Entry)、ダイアログなどのウィジェットを提供しており、これらを組み合わせることでGUIアプリケーションを効率的に開発できます。しかし、TkinterのEntryウィジェットには、標準ではプレースホルダーの機能が用意されていません。 プレースホルダーとは、入力欄にあらかじめ表示される仮のテキストのことで、「ここに何を入力すればよいか」をユーザーに伝える重要な役割を果たします。 本記事では、insert(挿入位置, テキスト) 関数を使って、Entryウィジェットにプレースホルダーを追加する方法を解説します。この関数は、第1引数に挿入位置(先頭なら