LoginSignup
8
13

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-12-23

やりたかったこと

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

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

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

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

イメージ

tkinter-sample.png

まずは動いたソース

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()                           # 画面を表示
8
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
13