It's My Life!!~人生楽しむっ!~

人生いろいろありつつも、楽しみながら生きる雑記ブログ。エンタメ・プログラミング・転職活動…さまざまな情報を主観的にお届けして、人生楽しみたい人とつながりたい!

Python:GUIを使って簡単なアプリを作ったよ!


こんにちは。IT業界への就職を目指す織田龍馬(@mousou_univ)です。

今回はついに!
PySimpleGUIを使った、簡単なデスクトップアプリを作ることができました!!

作成したPythonプログラムは、
「5教科の点数計算プログラム」です!

この記事は

・現役ITエンジニアさん
Pythonプログラミング初心者
・IT初心者

などの方々に読んでいただけると嬉しいです。
それでは、よろしくお願いします!

「5教科の点数計算」の概要

今回の「5教科の点数計算」は、このような動きになります。

①「名前と国語・社会・数学・理科・英語の点数」をそれぞれ入力する。

⓶ ①を入力すると、自動的に5教科の合計点数が計算される

③ ⓶と同時に、合計点数に応じて5種類のコメントが出力される


とても簡単なプログラムですが、GUIを用いて作れたのがとても感動的です。

ソースコード公開

#1.PySimpleGUIモジュールのインストール
import PySimpleGUI as sg

#2.アプリで表示される文字入力
layout = [
    [sg.Text("名前を入力: ",font=("Arial",16)),sg.Input(key="-NAME-")],
    [sg.Text("国語の点数を入力; ",font=("Arial",16)),sg.Input(key="-JAPANESE-")],
    [sg.Text("社会の点数を入力: ",font=("Arial",16)),sg.Input(key="-SOCIAL_STUDIES-")],
    [sg.Text("数学の点数を入力: ", font=("Arial", 16)),sg.Input(key="-MATH-")],
    [sg.Text("理科の点数を入力: ", font=("Arial", 16)),sg.Input(key="-SCIENCE-")],
    [sg.Text("英語の点数を入力: ", font=("Arial", 16)),sg.Input(key="-ENGLISH-")],
    [sg.Button("計算",key="-TOTAL-")],
    [sg.Text("合計は: ", key="-TOTAL_SUBJECT-", font=("Arial", 14))],
    [sg.Text("", key="-MESSAGE-", font=("Arial",50),text_color="Blue")]
]

#3.ウインドウのタイトルと大きさ
window=sg.Window("自動点数計算",layout,size=(500,500))

#4.合計の計算と、合計点数に合わせたメッセージの表示
while True:
    event,values=window.read()
    if event=="-TOTAL-":
        subject_total=int(values["-JAPANESE-"])+int(values["-SOCIAL_STUDIES-"])+int(values["-MATH-"])+int(values["-SCIENCE-"])+int(values["-ENGLISH-"])
        window["-TOTAL_SUBJECT-"].update(value=f"合計は{subject_total}点です")
        if subject_total>=450:
            window["-MESSAGE-"].update(value=("すごい!天才!"))
        elif 449>=subject_total>=350:
            window["-MESSAGE-"].update(value=("よくがんばった!"))
        elif 349>=subject_total>=250:
            window["-MESSAGE-"].update(value=("まあまあだな!"))
        elif 249>=subject_total>=150:
            window["-MESSAGE-"].update(value=("もっと勉強しよう!"))
        else:
            window["-MESSAGE-"].update(value=("このままじゃまずいね…本気で頑張らないと!"))
    if event==sg.WINDOW_CLOSED:
        break
window.close()

実際の画面

最初の起動画面。38歳、Python学習歴3か月の、俺もここまでできるようになった…と感動。
ずいぶん偉そうな口調である。

苦労したところ

合計点数とコメントを同時に出すのに苦労しました。
それぞれkeyを決めて取り出さないといけないので、MESSAGEキーを参照するのか、TOTALキーを参照するのかでこんがらがりましたが…
できあがったときは感動!

参考にした動画

今回、わからないところは
サプーさんの動画を見て解決しました。


www.youtube.com


サプーさんの動画は丁寧でわかりやすく、私がPythonを勉強しはじめたのも、サプーさんの動画がきっかけです。かわいい女の子のVtuberが教えてくれるのもGOODですね。この場を借りて、お礼申し上げます。

おわりに~GUIをもっと極めよう!~

自分の書いたプログラムがGUIで動いた瞬間の「やった!」感~だからプログラミングは楽しい。

本当はtkinterモジュールを使ったほうがいいのかな?などといろいろ考えますが、まずは簡単なところからスタート。

まだまだIT業界への就職はほど遠いが…

楽しさに勝る勉強なし。の精神でがんばります!

今回も読んでくれてありがとうございました!