TkinterのTextウィジェットでハイパーリンクを作成する方法を解説
TkinterのTextウィジェットは、複数行にわたるユーザー入力を受け付けるために一般的に使用されるウィジェットです。しかし、テキストドキュメントの中には、ユーザーを別のページへ誘導したい場合など、ハイパーリンクを含めたいケースもあります。
本記事では、PythonのHyperLinkManagerスニペットを使って、Textウィジェット内にハイパーリンクを作成する方法を詳しく解説します。
HyperLinkManagerとは
HyperLinkManagerは、Textウィジェット内の特定のキーワードにハイパーリンク機能を追加するためのコードスニペットです。このスニペットを利用することで、クリック可能なリンク付きテキストを簡単に実装できます。
以下のGitHubリポジトリからスニペットをダウンロードできます。
https://github.com/codewithdev/Code-Snippets/blob/master/tkinter/tkHyperlinkManager.py/
ダウンロードが完了したら、次のようにインポートしてノートブックで使用できるようになります。
from tkHyperLinkManager import HyperlinkManager
実装例
それでは、実際にハイパーリンク付きのテキストウィジェットを作成してみましょう。以下のコードでは、webbrowserモジュールとfunctools.partialを組み合わせて、リンクがクリックされたときに指定したURLをブラウザで開く仕組みを実装しています。
# 必要なライブラリをインポート
from tkinter import *
from tkHyperLinkManager import HyperlinkManager
import webbrowser
from functools import partial
# Tkinterフレームのインスタンスを作成
win = Tk()
win.geometry("700x350")
# コールバック関数を定義(URLを新しいタブで開く)
def callback(url):
webbrowser.open_new_tab(url)
# リンクを表示するためのTextウィジェットを作成
text = Text(win)
text.insert(END, "こんにちは、ようこそ ")
text.pack()
# HyperlinkManagerのインスタンスを生成
hyperlink = HyperlinkManager(text)
# ハイパーリンク付きのテキストを挿入
text.insert(END,
"TutorialsPoint", hyperlink.add(partial(webbrowser.open, "https://www.tutorialspoint.com")))
win.mainloop()実行結果
上記のコードを実行すると、テキストウィジェットを含むウィンドウが表示され、その中にハイパーリンクが設定されたキーワードが現れます。

リンク部分をクリックすると、指定されたURLがデフォルトのWebブラウザで自動的に開きます。
まとめ
HyperLinkManagerを活用すれば、TkinterのTextウィジェット内にクリック可能なハイパーリンクを簡単に追加できます。ヘルプドキュメントやチュートリアルアプリなど、ユーザーを外部リソースへ誘導したい場面で非常に便利な手法なので、ぜひ活用してみてください。
-
TkinterのEntryウィジェットにデフォルトテキストを設定する方法
TkinterのEntryウィジェットは、ユーザーが入力した1行のテキストを表示・取得するための基本的なGUI部品です。ログインフォームやサインアップフォームなど、ユーザーとのやり取りが必要なさまざまなアプリケーションで広く利用されています。 Entryウィジェットにデフォルトテキスト(初期表示テキスト)を設定したい場合は、insert()メソッドを使用します。挿入位置とデフォルトとして表示したいテキストを引数として渡すだけで、簡単に実装できます。 実装例 以下の例では、デフォルトテキストが設定されたEntryウィジェットを作成しています。 # tkinterライブラリをインポート from
-
Tkinterでテキストウィジェットを読み取り専用(無効化)にする方法
Tkinterでは、テキストウィジェットを無効化(disabled)したいケースがあります。これを実現するには、テキストウィジェットの state オプションを DISABLED に設定します。こうすることでテキストウィジェットがフリーズし、読み取り専用の状態になります。この記事では、テキストウィジェットとボタンを作成し、ボタンをクリックするとテキストウィジェットを即座に無効化できるサンプルを紹介します。コード例# ライブラリのインポート from tkinter import * # ウィンドウのインスタンスを作成 win = Tk() # ウィンドウのサイズを設定 win.geomet