python3でtkinter を使って入出力画面の基礎の基礎


やりたかったこと

pythonを使い始めて、いろいろなことができることがわかってたレベルです。コマンドプロンプトから使ってきましたが、GUIで入出力をするツールもできるんじゃない?と思ってまずは自分向けのサンプルを作りました。

なぜシンプルなサンプルを書いたか

「tkinter」「GUI」「テキストボックス」で検索していくつかのサイトがヒットしますが、いきなり電卓が動いていたり、tkinterを初めて使う身としては説明が一部しかなかったり、入力のみ・出力のみだったり、でしたので、基礎の基礎である、入力して表示する部分のみを書きました

まずは動いたので、自分用の備忘録として記録します
早急に説明を追記する予定です
ここまでできれば、あとはCUIで書いていたものを追加すれば、検索キーを入力して、その結果をGUIで表示することもいつもの手順でできるので、一安心です。

イメージ

まずは動いたソース

Enterキーを押すか、ボタンのクリックどちらでも、入力した文字が出力用のラベル(初期値で"OutputData"と表示している部分)に表示されます。
実際に使うときは、funcとcalcどちらかだけになると思います

import os, tkinter
def func():      # Etnerキー押下時の動作
    getvalue = textBox1.get()
    print("in the function =",getvalue)
    textBox1.delete(0,tkinter.END)
    label2["text"] = getvalue
def calc(event):  # ボタン押下時の動作 
    getvalue = textBox1.get()
    print("in the function =",getvalue)
    textBox1.delete(0,tkinter.END)
    label2["text"] = getvalue
# ウインドウ
root = tkinter.Tk()              # Tkクラス生成
root.title(u"ウインドウタイトル")  # 画面タイトル  
root.geometry("350x150")         # 画面サイズ 

# 入出力エリア
label1 = tkinter.Label(text='InputData')  # 入力用ラベル
label1.place(x=5,y=5)                     # ラベルの表示位置 
textBox1 = tkinter.Entry(width=5)         # 入力用テキストボックス 
textBox1.place(x=100, y=5)                # テキストボックス位置指定
label2 = tkinter.Label(text='OutputData') # 出力用ラベル
label2.place(x=100,y=50)                  # ラベル位置
textBox1.focus_set()                      # テキストボックスにフォーカス指定 
btn = tkinter.Button(text='Go', command=func) # ボタン作成
btn.pack()
textBox1.bind('<Return>', calc)           # Enterキーが押されイベント設定

root.mainloop()                           # 画面を表示