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

【Python】Tkinterのテキストウィジェットでテキストを強調表示する方法

TkinterのTextウィジェットを使うと、複数行にわたるユーザー入力を受け付けることができます。テキストの挿入や情報の表示はもちろん、ウィジェットから出力を取得することも可能です。

テキストウィジェット内の特定のテキストを強調表示したい場合は、tag_add()メソッドを使用します。このメソッドを使うと、指定した範囲のテキストにだけタグを追加できます。さらにtag_configure()メソッドと組み合わせれば、背景色や文字色などタグの見た目を自由にカスタマイズできます。

コード例

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

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

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

# テキストウィジェットを追加
text=Text(win, width=80, height=15, font=('Calibri 12'))

# テキストウィジェットにデフォルトのテキストを設定
text.insert(INSERT, "Tkinter is a Python Library to create GUI-based applications.")
text.insert(END, "Learning Tkinter is Awesome!!")

# タグを追加してテキストを選択状態にする
text.tag_add("start", "1.0","1.7")
text.tag_configure("start", background="OliveDrab1", foreground="black")
text.pack()

win.mainloop()

ポイントは以下の2行です。

  • tag_add("start", "1.0", "1.7"):1行目の0文字目から6文字目まで("1.0"~"1.7")の範囲に「start」という名前のタグを適用します。
  • tag_configure():「start」タグに対して背景色(OliveDrab1)と文字色(黒)を設定し、該当部分を強調表示します。

実行結果

上記のコードを実行すると、テキストウィジェット内の先頭部分がハイライト表示されたウィンドウが表示されます。

【Python】Tkinterのテキストウィジェットでテキストを強調表示する方法


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

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

  2. Tkinterでウィジェットの現在のX・Y座標を取得する方法

    Tkinterは、PythonでGUIアプリケーションを開発するために広く利用されている標準ライブラリです。ボタン、テキストボックス、ラベルなど、さまざまなウィジェットが用意されており、これらを組み合わせることで直感的なユーザーインターフェースを構築できます。さらに、ウィジェットの配置位置や座標も、専用の関数やライブラリを使って柔軟にカスタマイズすることが可能です。ここでは、Tkinterフレーム上に配置したウィジェットの実際の座標を取得する方法を紹介します。ウィジェットの正確な座標を知りたい場合には、Tkinterライブラリが提供するgeometry(ジオメトリ)関連のメソッドを活用します。