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 Application master = tk.Tk()
# Create the text widget for two lines of text text_widget = tk.Text(master, height = 2 , width = 40 )
# Pack it into our tkinter application text_widget.pack() # Insert text into the text widget # tk.END specifies insertion after the last character in our buffer text_widget.insert(tk.END, "First Line - Hello from Python )
# Start the mainloop tk.mainloop() |
結果は以下の通りです。
import tkinter as tk
# Create our master object to the Application master = tk.Tk()
# Create the text widget text_widget = tk.Text(master, height = 5 , width = 40 )
# Create a scrollbar scroll_bar = tk.Scrollbar(master)
# Pack the scroll bar # Place it to the right side, using tk.RIGHT scroll_bar.pack(side = tk.RIGHT)
# Pack it into our tkinter application # Place the text widget to the left side text_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 than the width, we can use tkinter's scrollbar to solve this problem! """ # Insert text into the text widget text_widget.insert(tk.END, long_text) # Start the mainloop tk.mainloop() |
確かに、テキストウィジェットの中に2行のテキストがあるように見えます!
この記事もチェック:PythonでTkinterを使ってGUIの電卓アプリを作成する方法
Text Widgetにスクロールバーを追加する
上記の出力は小さいテキストに対しては有効ですが、テキストのサイズ自体が幅よりも大きい場合はどうでしょうか?
Tkinterのスクロールバーを使用して、テキストウィジェットに追加することができます。
これで、スクロールバーを追加した後、より大きなテキストを適切に表示することができるはずです。
スクロールバーオブジェクトを作成するには、tk.Scrollbar()
を使用して、アプリケーションに追加してください。
結果は以下の通りです。
右側のスクロールバーと、左側のテキストウィジェットがサポートされているのがわかります。
これを元に、さらに多くのウィジェットを追加して、GUIアプリケーションをもっと面白くできるといいですね。
この記事もチェック:TkinterのScaleウィジェットの使い方を解説する
まとめ
この記事では、Tkinterアプリケーションにシンプルなテキストウィジェットを追加する方法と、より大きなテキストをサポートするためにスクロールバーを追加する方法を学びました。
今後のTkinterチュートリアルでは、さらに多くのウィジェットを紹介する予定です!