PySimpleGUI 计算器

复制代码
import PySimpleGUI as sg


def button(text):
    return sg.Button(text, pad=(2, 2), size=(4, 2), font=('黑体', 18), button_color='blue')


layout = [  # 定义布局,确定行数
    [sg.Text('', key='-show-')],
    [sg.InputText('', size=(12, 2), font=('黑体', 28), key='-input-')],
    [button(i) for i in ['AC', '(', ')', '%']],
    [button(i) for i in ['1', '2', '3', '+']],
    [button(i) for i in ['4', '5', '6', '-']],
    [button(i) for i in ['7', '8', '9', '*']],
    [button(i) for i in ['0', '.', '=', '/']]
]
window = sg.Window('计算器', layout)  # 创建窗口
while True:  # 事件循环
    event, values = window.read()  # 读取窗口,返回事件和值
    print(event, values)
    if event is None:  # 窗口关闭,程序中止运行
        break
    if event in list('1234567890+-().'):
        window['-input-'].update(values['-input-'] + event)
    if event == '*':
        window['-input-'].update(values['-input-'] + '*')
    if event == '/':
        window['-input-'].update(values['-input-'] + '/')
    if event == '%':
        try:
            window['-input-'].update(eval(values['-input-'] + '/100'))  # eval:接收运行一个字符串表达式,返回表达式的结果值。
        except:
            window['-input-'].update('')
            window['-show-'].update('ERROR')
    if event == '=':
        try:
            window['-input-'].update(eval(values['-input-']))
        except:
            window['-input-'].update('')
            window['-show-'].update('ERROR')
            window['-input-'].update('')
    if event == 'AC':
        window['-input-'].update('')
        window['-show-'].update('')

window.close()  # 窗口关闭
复制代码

 

posted @   王亚锋  阅读(63)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示