見出し画像

Pythonで作るGUIアプリ入門 Part5 -インプットテキストから値の取得-

インプットテキストから値の取得

インプットテキストに入力された値を取得してみましょう。インプットテキストの値は、以下のコードではeventではなくvalueに格納されます。

event, value = window.read() 

value[‘key‘] とする事で、’key’のキーを持つウィジェットの値を参照できます。取得できる値は、インプットテキストの値だけではありません。ラジオボタン、チェックボックス、コンボボックスの値などもvalueに格納されます。取得した値を変数に格納して、別の処理で使用する事が可能です。

以下のシンプルなGUIアプリを作成しましょう。図5-1.入力テストでは、インプットテキストに文字列を入力出来ます。画像では、「入力テスト」と入力しています。 入力結果を出力します ボタンを押すと、図5-2.入力テスト結果のようにインプットテキストに入力した値をポップアップで出力します。

5-1.入力テスト
5-2.入力テスト結果

コードは、以下の通りとなります。

import PySimpleGUI as sg

layout = [
    [sg.Text('入力して下さい'), sg.InputText(key='-Input-')],
    [sg.Button('入力結果を出力します', key='-Btn-')]
]

window = sg.Window('InputTextの値を取得', layout, size=(200, 70))

while True:
    event, value = window.read()  # イベントの入力を待つ

    if event == '-Btn-':
        output = value['-Input-']
        sg.popup(output)
        break
    elif event is None:
        break

window.close()

まずは、レイアウトの1行目ではTextとInputTextを配置しています。InputTextにはkey=’-Input-’を割り当てています。レイアウトの2行目ではButtonを配置し key=’-Btn-’を割り当てています。キーを割り当てる理由は、後のイベントループ内で使用するためです。

windowでは、タイトル、設定したレイアウトとサイズを指定しています。

window = sg.Window('InputTextの値を取得', layout, size=(200, 70))

while True: のイベントループ内ではボタンが押された場合の処理をif文内にコーディングしています。先ほど、ボタンにキーを-Btn-と割り当てています。

while True:
    event, value = window.read()  # イベントの入力を待つ

    if event == '-Btn-':

インプットテキストの値を取得して、変数outputに格納します。インプットテキストの値は、value[‘key‘]で取得できます。インプットボックスのキーは
’-Input-' ですので、コードは以下のようになります。

output = value['-Input-']

この変数outputをポップアップに表示させます。

sg.popup(output)

以上のようにして、インプットテキストからの入力値を取得する事が出来ます。これで、ユーザーに入力してもらった値を受け取る事ができるようになりました。

ラジオボタンやチェックボックスの入力も受け取る事が出来ます。次回は、ラジオボタンの使い方について説明します。

GUIアプリ入門講座は毎日更新します!
記事が参考になりましたら、❤️を押していただけると励みになります😊



「世界一やさしいPythonデスクトップアプリ開発のはじめ方」を2022/3/19にAmazon Kindleで発売しました!

Amazon売れ筋ランキングで…

・Kindle有料(全体):14位!!!
(ありがとうございます😄)
・プログラミング(Kindleストア):1位
・データベース(Kindleストア):1位
・デジタルエンターテイメント(Kindleストア):1位

と大変好評をいただいております。ありがとうございます。
Kindle Unlimitedなら無料ですので、ぜひご一読下さい!


この記事が気に入ったらサポートをしてみませんか?