【Python】tkinterでテキストボックスを作成する方法について解説!
tkinterではテキストボックスを配置することができます。
テキストボックスとはテキストを1行だけ入力するための部品であり、アプリの使用者が入力した値を取得したい場合に使用します。
その為、お問い合わせ画面などでは名前や電話番号、住所などを入力する欄で使用されているのをよく見かけます。
tkinterでテキストボックスを配置するにはEntry()メソッドを使用し、パラメータを設定することでテキストボックスをカスタマイズすることができます。
また、insert()で設置したテキストボックスの初期値を設定したり、get()で入力した値を取得したり、delete()で入力した値を削除するなど値の操作をすることもできます。
今回は、Pythonのtkinterでテキストボックスを作成する方法について以下の内容で解説していきます。
⚫︎ テキストボックスを配置する方法
⚫︎ テキストボックスの値を取得する場合
⚫︎ テキストボックスの値をセットする場合
⚫︎ テキストボックスの値を削除する場合
目次
tkinterとは
tkinterとは「Tool Kit Interface」のことであり、Python標準のGUIアプリケーションを作成するモジュールになります。
その為、tkinterを使用すると、GUIの画面にボタンやチェックボックス、ラジオボタン、文字を表示するためのラベルなどのウィジェットを配置でき、ボタンを押して操作することができ、簡単なものから本格的なものまで幅広い範囲でアプリケーションを作成することができます。
テキストボックス(textbox)とは
テキストボックスとはテキストを入力するための部品になります。
例えば、下記のようなお問い合わせ画面で名前や電話番号、住所を入力するかと思いますが、それらは全てテキストボックスになります。
HTMLでも名前や電話番号、住所などは画面上はみ出すほど長くないので1行で収めることができるテキストボックスを使用しています。
つまり、tkinter使用することができるテキストボックスも1行だけ入力できる入力欄となります。
テキストボックスを配置する方法
tkinterやテキストボックスがどのようなものなのか把握できましたら、実際にtkinterでテキストボックスを配置していきましょう。
tkinterでテキストボックスの配置するにはEntry()を使用します。
Entry()はGUI画面にテキストボックスを配置することができるメソッドになります。
ここでは紹介しませんが、Entry()はパラメータを設定することができ、パラメータを設定することでテキストボックスをカスタマイズすることができます。
例えば、テキストボックスのパラメータにwidthを指定することでテキストボックスの横幅を設定することができます。
sample.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import tkinter as tk # メインウィンドウを作成 baseGround = tk.Tk() # ウィンドウのサイズを設定 baseGround.geometry('500x300') # 画面タイトル baseGround.title('テキストボックス') # ラベル label1 = tk.Label(text='テキストボックス1') label1.place(x=30, y=70) label2 = tk.Label(text='テキストボックス2') label2.place(x=30, y=120) # テキストボックス textBox1 = tk.Entry(width=40) textBox1.place(x=30, y=90) textBox2 = tk.Entry() textBox2.place(x=30, y=150) baseGround.mainloop() |
出力結果
Entry()を使用することでGUI画面にテキストボックスを配置しています。
また、widthをパラメータに設定しているのテキストボックスは横幅が設定されて配置されています。
テキストボックスの値を操作する
tkinterのテキストボックスの値を操作してみます。
テキストボックスの値を取得する場合
テキストボックスの値を取得する場合はget()を使用します。
「テキストボックス.get()」とすることで指定したテキストボックスの入力値を取得することができます。
sample.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
import tkinter as tk # メインウィンドウを作成 baseGround = tk.Tk() # ウィンドウのサイズを設定 baseGround.geometry('500x300') # 画面タイトル baseGround.title('テキストボックスの値を取得する') # ラベル label1 = tk.Label(text='テキストボックス1') label1.place(x=30, y=40) label2 = tk.Label(text='テキストボックス2') label2.place(x=30, y=90) # テキストボックス textBox1 = tk.Entry(width=40) textBox1.place(x=30, y=60) textBox2 = tk.Entry() textBox2.place(x=30, y=120) def val(): # テキストボックスの値を取得 print(textBox1.get()) print(textBox2.get()) # ボタンの作成と配置 button = tk.Button(baseGround, text = 'OK', # クリック時にval()関数を呼ぶ command = val ).place(x=30, y=180) baseGround.mainloop() |
出力結果
get()を使用することでテキストボックスの値を取得しています。
その為、ボタンを押すとテキストボックスの値がコンソールに表示されます。
テキストボックスの値をセットする場合
テキストボックスの値をセットする場合はinsert()を使用します。
insert()はパラメータ指定することができ、第1パラメータは文字をセットする位置を指定することができます。
sample.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
import tkinter as tk # メインウィンドウを作成 baseGround = tk.Tk() # ウィンドウのサイズを設定 baseGround.geometry('500x300') # 画面タイトル baseGround.title('テキストボックスの初期値をセット') # ラベル label1 = tk.Label(text='テキストボックス1') label1.place(x=30, y=70) label2 = tk.Label(text='テキストボックス2') label2.place(x=30, y=120) # テキストボックス textBox1 = tk.Entry(width=40) # テキストボックスの値をセット textBox1.insert(tk.END,"テキストをセット1") textBox1.place(x=30, y=90) # テキストボックス textBox2 = tk.Entry() # テキストボックスの値をセット textBox2.insert(tk.END,"テキストをセット2") textBox2.place(x=30, y=150) def val(): # Intvarオブジェクトの値を取得 print(textBox1.get()) print(textBox2.get()) # ボタンの作成と配置 button = tk.Button(baseGround, text = 'OK', # クリック時にval()関数を呼ぶ command = val ).place(x=30, y=210) baseGround.mainloop() |
出力結果
insert()を使用することでテキストボックスの初期値をセットしています。
その為、ボタンを押すとテキストボックスの初期値がコンソールに表示されます。
テキストボックスの値を削除する場合
テキストボックスの値を削除する場合はdelete()を使用します。
delete()はパラメータを指定することができ、第1パラメータはテキストボックス内の削除開始位置を、第2パラメータはテキストボックス内の削除終了位置を指定することができます。
つまり、「delete(0, tkinter.END)」と指定するとテキストボックス内の最初から最後までをすべて削除するようになります。
sample.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
import tkinter as tk # メインウィンドウを作成 baseGround = tk.Tk() # ウィンドウのサイズを設定 baseGround.geometry('500x300') # 画面タイトル baseGround.title('テキストボックスの値を削除') # ラベル label1 = tk.Label(text='テキストボックス1') label1.place(x=30, y=70) label2 = tk.Label(text='テキストボックス2') label2.place(x=30, y=120) # テキストボックス textBox1 = tk.Entry(width=40) textBox1.place(x=30, y=90) textBox2 = tk.Entry() textBox2.place(x=30, y=150) def val(): textBox1.delete(2, tk.END) textBox2.delete(0, tk.END) # ボタンの作成と配置 button = tk.Button(baseGround, text = '削除', # クリック時にval()関数を呼ぶ command = val ).place(x=30, y=210) baseGround.mainloop() |
出力結果
今回のポイント
Entry()でGUI画面にテキストボックスを作成
⚫︎ テキストボックスとは1行のテキストを入力するための部品である
⚫︎ tkinterでテキストボックスの配置するにはEntry()を使用する
⚫︎ tkinterでテキストボックスの値を取得する場合はget()を使用する
⚫︎ tkinterでテキストボックスの値をセットする場合はinsert()を使用する
⚫︎ tkinterでテキストボックスの値を削除する場合はdelete()を使用する
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。