Tkinterチュートリアルのこのパートでは、Tkinter Text Widgetを取り上げます。
これまでのチュートリアルではオブジェクト指向のアプローチを使っていましたが、今回は個々のウィジェットの例を見ていくので、モジュールを直接使った方がシンプルになると思います。
そこで、ここでは明示的な Application クラスを使わずに直接Tkinterを使用することにします。
では、さっそく始めましょう!
Tkinterテキストウィジェット
これは、アプリケーション内でテキストオブジェクトを簡単に表示することができるウィジェットです。
例えば、GUI上にいくつかの線を表示したいと思ったとき、Textウィジェットを使えば簡単に目的を達成することができます。
では、その方法を見てみましょう。
テキストウィジェットを作成するには、単に tk.Text(master, width, height) メソッドを使用します。
ここで master は GUI アプリケーションのマスターオブジェクトです (tk.TK() を使用します)。
そして、text_widget.insert() メソッドを使ってテキストを追加することができます。
import tkinter as tk
# Create our master object to the Applicationmaster = tk.Tk()
# Create the text widget for two lines of texttext_widget = tk.Text(master, height=2, width=40)
# Pack it into our tkinter applicationtext_widget.pack()# Insert text into the text widget# tk.END specifies insertion after the last character in our buffertext_widget.insert(tk.END, "First Line - Hello from Python)
# Start the mainlooptk.mainloop() |
結果は以下の通りです。
import tkinter as tk
# Create our master object to the Applicationmaster = tk.Tk()
# Create the text widgettext_widget = tk.Text(master, height=5, width=40)
# Create a scrollbarscroll_bar = tk.Scrollbar(master)
# Pack the scroll bar# Place it to the right side, using tk.RIGHTscroll_bar.pack(side=tk.RIGHT)
# Pack it into our tkinter application# Place the text widget to the left sidetext_widget.pack(side=tk.LEFT)
long_text = """This is a multiline string.
We can write this in multiple lines too!Hello from Python. This is the third line.This is the fourth line. Although the length of the text is longer thanthe width, we can use tkinter's scrollbar to solve this problem!"""# Insert text into the text widgettext_widget.insert(tk.END, long_text)# Start the mainlooptk.mainloop() |
確かに、テキストウィジェットの中に2行のテキストがあるように見えます!
この記事もチェック:PythonでTkinterを使ってGUIの電卓アプリを作成する方法
Text Widgetにスクロールバーを追加する
上記の出力は小さいテキストに対しては有効ですが、テキストのサイズ自体が幅よりも大きい場合はどうでしょうか?
Tkinterのスクロールバーを使用して、テキストウィジェットに追加することができます。
これで、スクロールバーを追加した後、より大きなテキストを適切に表示することができるはずです。
スクロールバーオブジェクトを作成するには、tk.Scrollbar() を使用して、アプリケーションに追加してください。

結果は以下の通りです。


右側のスクロールバーと、左側のテキストウィジェットがサポートされているのがわかります。
これを元に、さらに多くのウィジェットを追加して、GUIアプリケーションをもっと面白くできるといいですね。
この記事もチェック:TkinterのScaleウィジェットの使い方を解説する
まとめ
この記事では、Tkinterアプリケーションにシンプルなテキストウィジェットを追加する方法と、より大きなテキストをサポートするためにスクロールバーを追加する方法を学びました。
今後のTkinterチュートリアルでは、さらに多くのウィジェットを紹介する予定です!