PysimpleGUIの使い方メモとして、二次方程式の解を「解の公式」で求めるGUIを作成しました。
この記事で扱う要素
入力
・数値入力ボックス(sg.InputText)
・ボタン (sg.Button, sg.B)
出力
・画面出力 (window['hoge'].update('hogehoge'))
コード
Code
import PySimpleGUI as sg
def main():
layout = [[sg.Text("解の公式GUI", size=(15, 1), justification='center', font=("Helvetica", 20), relief=sg.RELIEF_RIDGE)],
[sg.T("ax^2+bx+c=0", size=(15, 1), justification='center')],
[sg.Text('a :'), sg.InputText("1", key='a', size=(25, 1))],
[sg.Text('b :'), sg.InputText("-4", key='b', size=(25, 1))],
[sg.Text('c :'), sg.InputText("4", key='c', size=(25, 1))],
[sg.Text('出力 :'), sg.Text("ここに答えが表示されます", key='ans')],
[sg.Button('解の公式'), sg.B('Cancel')]]
window = sg.Window('GUI window', layout)
while True:
event, values = window.read()
a = float(values['a'])
b = float(values['b'])
c = float(values['c'])
if event == None or event == 'Cancel': # if user closes window or clicks cancel
break
elif event == '解の公式':
ans = kai_no_kousiki(a, b, c)
window['ans'].update(ans)
window.close()
def kai_no_kousiki(a, b, c):
D = (b**2 - 4*a*c) ** (1/2)
x_1 = (-b + D) / (2 * a)
x_2 = (-b - D) / (2 * a)
return [x_1, x_2]
if __name__ == '__main__':
main()