Tkinterのテキストウィジェットとスクロールバーの使い方を解説する

スポンサーリンク

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
Second Line - Hi"
)
 
# 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行のテキストがあるように見えます!

Text Widgetにスクロールバーを追加する

上記の出力は小さいテキストに対しては有効ですが、テキストのサイズ自体が幅よりも大きい場合はどうでしょうか?

Tkinterのスクロールバーを使用して、テキストウィジェットに追加することができます

これで、スクロールバーを追加した後、より大きなテキストを適切に表示することができるはずです。

スクロールバーオブジェクトを作成するには、tk.Scrollbar() を使用して、アプリケーションに追加してください。

Tkinter Text Widget 1
Tkinter Text Widget 1

結果は以下の通りです。

Tkinter Scroll 1
Tkinter Scroll 1
Tkinter Scroll 2
Tkinter Scroll 2

右側のスクロールバーと、左側のテキストウィジェットがサポートされているのがわかります。

これを元に、さらに多くのウィジェットを追加して、GUIアプリケーションをもっと面白くできるといいですね。


まとめ

この記事では、Tkinterアプリケーションにシンプルなテキストウィジェットを追加する方法と、より大きなテキストをサポートするためにスクロールバーを追加する方法を学びました。

今後のTkinterチュートリアルでは、さらに多くのウィジェットを紹介する予定です!


タイトルとURLをコピーしました