PythonのGUI「テキストボックス」について。
この記事の内容はコチラです
- Pythonでテキストボックスを作成する
- テキストボックスの値を取得する
- テキストボックスに値を出力する
今回は、Pythonで「Tkinter.Entry」でテキストボックスを作り、テキストボックスを作成・出力・入力する方法を解説します。
Tkinterでテキストボックスを作る
Pythonでは「Tkinter」を使ってGUIでテキストボックス(Entry)を作ることができます。画面(ウィンドウ)を作ったり、テキストボックスを作ったり、ラベルを作ったりできます。
Tkinter
Pythonでテキストボックス・ラベルを作るには、「tkinter」モジュールを使います。
「tkinter」は「Tool Kit Interface」のことで、Python標準のGUIアプリケーションを作成するモジュールです。
画面を作る
import tkinter # Tkクラス生成 root = tkinter.Tk() # 画面サイズ root.geometry('300x200') # 画面タイトル root.title('テキストボックス') # 表示 root.mainloop()
画面作成の詳細はこちらを参照ください。
ラベルを作る
import tkinter # ラベル lbl = tkinter.Label(text='数値') lbl.place(x=30, y=70)
ラベルの詳細はこちらを参照してください。
テキストボックス(Entry)を作る
import tkinter # テキストボックス txt = tkinter.Entry(width=20) txt.place(x=90, y=70)
テキストボックスは「tkinter.Entry」で作成します。テキストボックスの幅は「width」で指定します。
テキストボックスを表示する座標は「place」で指定します。
画面・テキストボックス・ラベルを作成
これまでの画面・テキストボックス・ラベルをまとめたものがこちらです。
import tkinter # Tkクラス生成 root = tkinter.Tk() # 画面サイズ root.geometry('300x200') # 画面タイトル root.title('テキストボックス') # ラベル lbl = tkinter.Label(text='数値') lbl.place(x=30, y=70) # テキストボックス txt = tkinter.Entry(width=20) txt.place(x=90, y=70) # 表示 root.mainloop()
作成した画面
これで「tkinter」を使ってテキストボックス・ラベルを作成することができました。
テキストボックス(Entry)の入力・出力
テキストボックスをクリアする(文字を削除)delete
# テキストボックスをクリア txt.delete(0, tkinter.END)
テキストボックスに文字を削除してクリアするには、「delete」を使います。
第1パラメータはテキストボックス内の削除開始位置です。第2パラメータはテキストボックス内の削除終了位置です。
ここでは「0, tkinter.END」としています。つまりテキストボックス内の最初から最後までをすべて削除するということです。
テキストボックスに文字を入力するinsert
# テキストボックスに文字「1234」を入力 txt.insert(tkinter.END,"1234")
テキストボックスに文字を入力するには、「insert」を使います。
第一パラメータは文字をセットする位置です。「tkinter.END」はテキストボックスの最後に追加するという意味です。
作成した画面
テキストボックスの文字を取得するget
# テキストボックスの文字を取得 txt.get() #[結果] '1234'
テキストボックスに入力された文字を取得するには、「get」を使います。
上の画面にボタンを追加して、ボタンのクリックイベントの中で「get」すれば、テキストボックスの値を取得できます。ボタンのクリックイベントの詳細はこちらを参照してください。
Pythonライブラリ:https://docs.python.jp/3/library/tk.html
以上、Pythonで「Tkinter.Entry」を使って テキストボックスを作り、テキストボックスを作成・クリア・取得・セットする方法でした。
コメント
「参考ページ」と書いてあるリンク先、ここが『参考』ではなく
理解しておくべき『前提条件』ですね
mainloop()が書かれていないので、このページだけでは、
なにも表示されず、悩みました。
それと
>テキストボックス(Entry)の文字を取得するget
も「txt.get()」で取得できるのですが、
・どこに書けばいいの?
・どうやって実行させるの?
が、わからずに悩みました。
なのですが、いくつか見た説明の中で一番参考になりました。
ありがとうございました。
返信、遅くなりまして申し訳ございません。
mainloop()を飛ばしていたので、明記しました。
また、getの使用例を明記しました。
ご指摘ありがとうございました!
自分もmainloop()がなくてちょっとてこずりました笑
とても見やすいサイトなのでぜひ改善していただければと思います!
色々と申し訳ございません。
mainloop()を飛ばしていたので、明記しました。
ご指摘ありがとうございました!