Hello Medical Python!

medical-pythonの管理者のAzurです。medicalなネタ、pythonなネタ、アスリート応援ネタをchatGPIをつかって’できるだけ楽した’ プログラムを作っていきます。

PysimpliGUIを使って’Hello word’する

プログラムには興味あるけど、できるだけラクはしたい、、。そもそもコンピューターに仕事してもらうのは楽するためですよね。
そこでプログラミングも人工知能(AI)にさせていきましょう。
人間の手でちょっとずつ微調整していきます。

chatGPT先生にpysimpleGUIのコードを書いてもらう

ではまずchatGPTを召喚 !! Try ChatGPTします。

ChatGPTに指示を与えます、ポイントは
’条件を設定する’ やることを順に指示する の2点かなと思っています。だってプログラムの実行もこの順番にするもんね。

<chatGPTへの指示>

pysimpleGUIを使って以下の操作を行うプログラムを教えてください
1. テキストの入力ボックスを表示する 2. 入力したテキストを別ウインドウで表示させる

数秒でchatGPTがコードを書いてくれます。丁寧に教えてくれます。

<ChatGPTの回答>
以下は、pysimpleGUIを使用して、テキストの入力ボックスを表示し、入力されたテキストを別ウィンドウで表示するプログラム例です。
このプログラムでは、最初にテキストの入力ボックスを表示し、Submitボタンがクリックされたら、入力されたテキストを表示するウィンドウを開きます。このウィンドウでは、入力されたテキストが表示され、閉じるボタンをクリックすることでウィンドウを閉じることができます。また、テキスト入力ウィンドウを閉じることでプログラムを終了することができます。

ChatGPTの回答

import PySimpleGUI as sg

# テキスト入力ボックスのレイアウト
input_layout = [
    [sg.Text("テキスト入力:")],
    [sg.InputText()],
    [sg.Submit()]
]

# 入力されたテキストを表示するウィンドウのレイアウト
output_layout = [
    [sg.Text("入力されたテキストは以下の通りです:")],
    [sg.Text("", size=(30, 1), key="-OUTPUT-")],
    [sg.Button("閉じる")]
]

# ウィンドウの生成
input_window = sg.Window("テキスト入力", input_layout)
output_window = sg.Window("テキスト表示")

# イベントループ
while True:
    event, values = input_window.read()
    
    # テキスト入力ウィンドウのイベント処理
    if event == "Submit":
        input_text = values[0]
        input_window.close()
        
        # 入力されたテキストを表示するウィンドウを開く
        output_window.Layout(output_layout).finalize()
        output_window.Element("-OUTPUT-").update(input_text)
        
        # 入力されたテキストを表示するウィンドウのイベント処理
        while True:
            event, values = output_window.read()
            if event in (sg.WINDOW_CLOSED, "閉じる"):
                output_window.close()
                break
                
    # テキスト入力ウィンドウが閉じられた場合のイベント処理
    if event in (sg.WINDOW_CLOSED, "Exit"):
        break

# ウィンドウを破棄
input_window.close()
output_window.close()

なんか動きそう、、インデントとかも自動で調整してくれています、、
自分のVScodeを起動して実行してみます。baseのpythonは3.8.8でちょっと古め、、
注)実行環境にはpythonが入っている事、pysimpleGUIがインストールされている事。
Run All で実行すると、、

こんな画面が出てきます。ここはmedical-pythonと表示させましょう

すると、、地味に表示!

なんか地味なのでchatGPTに無茶振りしてみた!

上記のコードを実行したときに、入力されたテキストを画面いっぱいに派手に表示させてください

chatGPT君の回答、’派手に’の意味は汲んでくれなかった。

以下は、pysimpleGUIを使用して、入力されたテキストを画面いっぱいに表示するプログラム例です。
Multilineコンポーネントを使用して、入力されたテキストを表示します。また、フォントサイズを大きくすることで、画面いっぱいに表示されるようにしています。ウィンドウのサイズも、800×600に設定しています。ただし、このプログラムでは、テキストがウィンドウの大きさを超える場合はスクロールバーが表示されます。

import PySimpleGUI as sg

# テキスト入力ボックスのレイアウト
input_layout = [
    [sg.Text("テキスト入力:")],
    [sg.InputText()],
    [sg.Submit()]
]

# 入力されたテキストを表示するウィンドウのレイアウト
output_layout = [
    [sg.Multiline("", size=(None, None), key="-OUTPUT-", font=("Arial", 24))],
    [sg.Button("閉じる")]
]

# ウィンドウの生成
input_window = sg.Window("テキスト入力", input_layout)
output_window = sg.Window("テキスト表示", size=(800, 600))

# イベントループ
while True:
    event, values = input_window.read()
    
    # テキスト入力ウィンドウのイベント処理
    if event == "Submit":
        input_text = values[0]
        input_window.close()
        
        # 入力されたテキストを表示するウィンドウを開く
        output_window.Layout(output_layout).finalize()
        output_window.Element("-OUTPUT-").update(input_text)
        
        # 入力されたテキストを表示するウィンドウのイベント処理
        while True:
            event, values = output_window.read()
            if event in (sg.WINDOW_CLOSED, "閉じる"):
                output_window.close()
                break
                
    # テキスト入力ウィンドウが閉じられた場合のイベント処理
    if event in (sg.WINDOW_CLOSED, "Exit"):
        break

# ウィンドウを破棄
input_window.close()
output_window.close()

実行結果。なんか大きくなった、でも地味、、pysimpleGUIのデフォルトのレイアウトが地味であるためと思われる。。


あと一息、デフォルトのカラーテーマを派手にしてみよう
pysimpleGUIのカラーテーマを変更してください。赤と黄色が入ったものにしてください

追加されたのはここ
# カラーテーマの設定 sg.theme(‘Reddit’)

あのう、、赤でも黄色でもないんですけど、、、、

以下は自分でテーマ選んだ方が早いと思います。

HotDogStandってのが赤と黄色です、名前がすごいけど、、

以上!初投稿でした。chatGPT で pysimpleGUI使って Hello medical-pythonでした。



退屈なことはPythonにやらせよう 第2版 ノンプログラマーにもできる自動化処理プログラミング [ AI Sweigart ]
価格:4,290円(税込、送料無料) (2023/5/7時点)
楽天で購入

コメント

  1. こんにちは、これはコメントです。
    コメントの承認、編集、削除を始めるにはダッシュボードの「コメント」画面にアクセスしてください。
    コメントのアバターは「Gravatar」から取得されます。

Copied title and URL