tkinterで超簡単にGUIアプリを作る


前置き

Pythonの人気が上昇してきたためか、Pythonの需要が最近ではとても高まっています。Pythonでは機械学習などの人工知能に関する技術が強いイメージですが、GUIのアプリを作ることも出来ます。
Pythonを始めたばかりでライブラリ?モジュール?という方向けの記事なので、中級者の方には物足りないかもしれませんが、読んでいただけると嬉しいです。

ファイルの準備

tkinter-gui/
├ app.py
├ face.png

上のようにapp.pyを作成して下さい。フォルダ名を自分はtkinter-guiとしましたが、何でも良いです。
face.pngは以下の画像を保存してapp.pyと同じ場所において下さい。


face.png

コードを書く

app.py
# Tkinterモジュールの読み込み
import tkinter

# ウィンドウの生成
root = tkinter.Tk()
root.attributes("-topmost", True)
root.minsize(width=200, height=200)

# Frameウィジェットの生成
frame = tkinter.Frame(root, width=300, height=300, bg="black")
frame.propagate(False)
frame.pack()

# テキストのLabelウィジェットの生成
label= tkinter.Label(frame, text="Hello! How are you?", fg="white", bg="black", font=("", 16))
label.pack()

# 画像のLabelウィジェットの生成
import os
png = tkinter.PhotoImage(file=os.path.dirname(__file__)+"/face.png")
image = tkinter.Label(frame, image=png, bg="black")
image.pack()

# Entryウィジェットの生成
entry = tkinter.Entry(frame, width=20, bg="gray", fg="white")
entry.insert(0, "happy")
entry.pack()

# クリックイベント関数
def show_text():
    new_label = tkinter.Label(frame, text=entry.get(), fg="white", bg="black", font=("", 32))
    new_label.pack()
    entry.destroy()
    button.destroy()

# Buttonウィジェットの生成
button = tkinter.Button(frame, text="Say", bg="gray", fg="yellow", command=show_text)
button.pack()

# ウィジェットが配置されたウィンドウを表示
root.mainloop()

上のコードをapp.pyに書いて下さい。
その後、 app.pyを実行すると以下のようなウィンドウが立ち上がります。

トカゲがあなたの気分を聞いていますね。テキストボックスに入力した後にSayボタンを押して答えてあげましょう。

happyと答えることが出来ました。

最後に

アプリケーションに必要なのは、

  1. ユーザーからの入力をプログラムが受け取る
  2. 入力に対してプログラムが何らかの処理をする
  3. プログラムはユーザーに出力を返す

この流れです。

今回は、本当に必要最低限なアプリケーションとしての機能のみを実装しました。この上のコードを土台に色々と改変を施せば、電卓アプリなどを作ることも可能です。コードの1行1行が画面上に何を出力しているのかを理解し、自分だけのアプリケーションを作ってみましょう。

今回の記事の内容は、下のサイトでも詳しく説明しています。良かったら見て下さい。

【Tkinter入門】PythonでGUIアプリを作ってみよう!