Tkinterで選択したテキストに色付きのハイライトを追加する方法
アプリケーション内で複数行のユーザー入力を受け付けられるテキストエディタを実装したい場合、TkinterのTextウィジェットを利用できます。Textウィジェットは、アプリケーション向けのテキストエディタを作成するために一般的に使用されるウィジェットで、テキストの入力はもちろん、選択・編集・特定テキストの作成といった操作も柔軟に行うことができます。
テキストの一部をハイライト表示し、その部分に色を付けたい場合は、tag_add("start", "first", "second")メソッドを使用します。tag_add()メソッドは、Textウィジェットから対象となるテキスト範囲を指定するための引数を2つ受け取ります。さらに、tag_configure()メソッドでタグの設定を行うことで、ハイライトしたテキストに背景色や文字色を簡単に適用できます。
サンプルコード
# 必要なライブラリをインポート
from tkinter import *
# tkinterフレーム(ウィンドウ)のインスタンスを作成
win = Tk()
# ウィンドウのサイズを設定
win.geometry("700x350")
# 新しいフレームを作成
frame = Frame(win)
# テキストウィジェットを追加
text = Text(frame)
# 初期テキストを挿入
text.insert(INSERT, "Hello, Welcome to TutorialsPoint.com")
text.pack()
# 指定した範囲のテキストにタグを追加
text.tag_add("start", "1.8", "1.35")
text.tag_configure("start", background="black", foreground="yellow")
frame.pack()
win.mainloop()実行結果
上記のコードを実行すると、一部がハイライト表示されたTextウィジェットが画面に表示されます。この例では、「1.8」から「1.35」までの範囲(1行目の8文字目から35文字目)に対して「start」というタグが適用され、黒い背景に黄色い文字色で強調されます。

ポイント解説
- tag_add(タグ名, 開始位置, 終了位置):インデックス形式「行.文字位置」で範囲を指定し、任意の名前のタグを適用します。
- tag_configure(タグ名, ...):background(背景色)やforeground(文字色)、フォントなど、タグの見た目を細かくカスタマイズできます。
この仕組みを活用すれば、検索結果の強調表示やシンタックスハイライトなど、より実用的なテキストエディタ機能の実装にも応用できます。
-
【Python】Tkinterでテキストボックス(テキストウィジェット)の内容を削除する方法
Tkinterには、ボタン、ダイアログボックス、各種ウィジェットなど、本格的なGUIアプリケーションを構築するための豊富な関数やモジュールが用意されています。複数行のテキストを扱えるテキストウィジェットを作成するには、Textウィジェットを使用します。これはコンストラクタとして機能し、親となるウィンドウやフレームを指定して呼び出します。作成したテキストウィジェットの内容を削除するには、組み込みメソッドdelete(first, last=None)を使います。このメソッドは、削除対象となる範囲(開始位置と終了位置)を引数として受け取ります。この記事では、クリックするとテキストボックス内の内容を
-
TkinterのEntryウィジェットにプレースホルダーを追加する方法
Tkinterは、ボタン、テキスト、エントリ(Entry)、ダイアログなどのウィジェットを提供しており、これらを組み合わせることでGUIアプリケーションを効率的に開発できます。しかし、TkinterのEntryウィジェットには、標準ではプレースホルダーの機能が用意されていません。 プレースホルダーとは、入力欄にあらかじめ表示される仮のテキストのことで、「ここに何を入力すればよいか」をユーザーに伝える重要な役割を果たします。 本記事では、insert(挿入位置, テキスト) 関数を使って、Entryウィジェットにプレースホルダーを追加する方法を解説します。この関数は、第1引数に挿入位置(先頭なら