
PySimpleGUIでは、キーボードから入力した文字を、ウィンドウに表示するGUIアプリを、簡単に作れます。
Pythonライブラリである、PySimpleGUIは、キーボードから入力した文字を、ウィンドウに表示するGUIアプリを、簡単に作れます。
この記事に載っているサンプルコードをコピーして、Pythonで実行すれば、簡単に動きを確認できますので、是非試してみて下さい。
この記事では、公式サイトから、各テーマに沿った内容を紹介しています。公式サイトは、英語で書かれており、多くの情報が載っていますが、ちょっと読みづらいです。
この記事では、初心者にもわかりやすいように、各処理の内容を、サンプルコード内にコメントとして載せています。
もう少し詳しく知りたい方は、公式サイトも見に行ってください。
【無料オンライン】ゼロから始めるPythonプログラミング入門講座(週5開催) テックジム
キーボードから入力された文字をウィンドウに表示するGUIアプリ
このサンプルコードは、
・テキスト入力欄に、キーボードからなにか文字を入力して、「GOボタン」を押すと、テキスト出力欄に、その文字が表示されます。
・「Clear」ボタンを押すと、テキスト出力欄の内容が消えます。


サンプルコード
#!usr/bin/env python
# -*- coding: utf-8 -*-
import PySimpleGUI as sg
# レイアウト(1段目:テキスト、2段目:テキスト、3段目:テキスト出力欄、4段目:テキスト入力欄、5段目:ボタン、ボタン、ボタン)
layout = [ [sg.Text('下の入力欄になにか入力して「GO」ボタンを押してください。:')],
[sg.Text('「Clear」ボタンを押すと、画面をクリアします。:')],
[sg.Text('入力欄'),sg.In(key='-IN-')],
[sg.Output(size=(50,10), key='-OUTPUT-')],
[sg.Button('Go'), sg.Button('Clear'), sg.Button('Exit')] ]
window = sg.Window(' テキスト表示アプリ ', layout)
while True:
# ユーザからの入力を待ちます。入力があると、次の処理に進みます。
event, values = window.read()
# テキスト入力欄に入力されたときのeventとvaluesを表示
print('event=',event, '、values=',values)
# テキスト入力値のみを表示
print('入力値=',values['-IN-'])
# ウィンドウの右上の×を押したときの処理、「Exit」ボタンを押したときの処理
if event in (sg.WIN_CLOSED, 'Exit'):
break
# 「Clear」ボタンを押したときの処理
if event == 'Clear':
# 「-OUTPUT-」領域を、空白で更新します。
window['-OUTPUT-'].update('')
window.close()
実行すると、
・テキスト入力欄に、キーボードからなにか文字を入力して、「GOボタン」を押すと、テキスト出力欄に、その文字が表示されます。
・「Clear」ボタンを押すと、テキスト出力欄の内容が消えます。


キーボードから入力された文字をウィンドウに表示するGUIアプリ(テキストに色を付ける)
このサンプルコードは、上のアプリと内容は一緒です。
ただ、テキスト出力欄に表示するときに、テキストや行全体を着色しています。


サンプルコード
#!usr/bin/env python
# -*- coding: utf-8 -*-
import PySimpleGUI as sg
# レイアウト(1段目:テキスト、2段目:テキスト、3段目:テキスト出力欄、4段目:テキスト入力欄、5段目:ボタン、ボタン、ボタン)
layout = [ [sg.Text('下の入力欄になにか入力して「GO」ボタンを押してください。:')],
[sg.Text('「Clear」ボタンを押すと、画面をクリアします。:')],
[sg.Text('入力欄'),sg.In(key='-IN-')],
[sg.MLine(size=(50,10), key='-OUTPUT-'+sg.WRITE_ONLY_KEY)],
[sg.Button('Go'), sg.Button('Clear'), sg.Button('Exit')] ]
window = sg.Window(' テキスト表示アプリ ', layout)
while True:
# ユーザからの入力を待ちます。入力があると、次の処理に進みます。
event, values = window.read()
# テキスト入力欄に入力されたときのeventとvaluesを表示
window['-OUTPUT-'+sg.WRITE_ONLY_KEY].print('event=',event, '、values=',values, text_color='red')
# テキスト入力値のみを表示
window['-OUTPUT-'+sg.WRITE_ONLY_KEY].print('入力値=',values['-IN-'], background_color='yellow')
# ウィンドウの右上の×を押したときの処理、「Exit」ボタンを押したときの処理
if event in (sg.WIN_CLOSED, 'Exit'):
break
# 「Clear」ボタンを押したときの処理
if event == 'Clear':
# 「-OUTPUT-」領域を、空白で更新します。
window['-OUTPUT-'+sg.WRITE_ONLY_KEY].update('')
window.close()
実行すると、以下のようになります。
テキスト入力欄に文字を入れて、「Go」ボタンを押すと、テキスト出力欄に、1段目は、文字が赤になり、2段目は、背景が黄色になりました。


まとめ
今回は、Pythonライブラリである、PySimpleGUIで、キーボードから文字を入力して、ウィンドウに表示するGUIアプリの作り方をを紹介しました。
コメント