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

Tkinterでテキストウィジェット内の特定の単語の色を変更する方法

Tkinterのテキストウィジェット(Textウィジェット)は、複数行のテキスト入力を作成・表示するためのウィジェットです。テキストウィジェットを柔軟に設定するための、さまざまな関数やメソッドが標準で用意されています。

テキストウィジェット内の特定の単語だけ色を変えたい場合は、tag_add(タグ名, 範囲) メソッドを使って、書式設定したい単語の範囲を選択します。範囲を指定した後、tag_config(プロパティ) メソッドを使用することで、その部分に対して文字色・背景色などのスタイルを自由に適用できます。

実装例

以下の例では、テキストウィジェット内の特定の単語に対して色を設定する方法を紹介します。

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

# tkinterウィンドウのインスタンスを作成
win = Tk()

# ウィンドウのサイズを指定
win.geometry("600x250")

# テキストウィジェットを作成
text = Text(win)
text.insert(INSERT, "Hello World!\n")
text.insert(END, "This is a New Line")

text.pack(fill=BOTH)

# 特定の色でタグを設定
text.tag_config("start", foreground="red")
text.tag_add("start", "1.6", "1.12")

win.mainloop()

実行結果

上記のコードを実行すると、「Hello World」という文字列を含むテキストウィジェットが表示され、そのうち「World」の部分だけが指定した色(赤)で表示されます。

Tkinterでテキストウィジェット内の特定の単語の色を変更する方法

ポイント解説

タグの位置指定は「行.列」の形式で行います。「1.6」は1行目の6文字目、「1.12」は1行目の12文字目を意味し、この間にある「World」にタグが適用されます。なお、タグ名は任意の文字列を指定でき、複数のタグを組み合わせることで、より高度な書式設定も可能です。

  1. Tkinterウィジェットの境界線の色を設定・変更する方法をわかりやすく解説

    Tkinterアプリケーションを開発していると、ウィジェットの境界線(ボーダー)の色を変更したくなることがあります。実は、highlightbackground や highlightcolor といったプロパティを設定するだけで、簡単に境界線の色をカスタマイズできます。これらのプロパティは、ウィジェットにフォーカスがあるかどうかに応じて使い分けられます。highlightbackground はフォーカスがないときの境界線の色、highlightcolor はフォーカスがあるときの境界線の色を指定します。また、highlightthickness を設定すると、境界線の太さも調整可能です。サ

  2. Tkinterでテキストウィジェットを読み取り専用(無効化)にする方法

    Tkinterでは、テキストウィジェットを無効化(disabled)したいケースがあります。これを実現するには、テキストウィジェットの state オプションを DISABLED に設定します。こうすることでテキストウィジェットがフリーズし、読み取り専用の状態になります。この記事では、テキストウィジェットとボタンを作成し、ボタンをクリックするとテキストウィジェットを即座に無効化できるサンプルを紹介します。コード例# ライブラリのインポート from tkinter import * # ウィンドウのインスタンスを作成 win = Tk() # ウィンドウのサイズを設定 win.geomet