Python3 tkinter 简单计算器

上代码:

#encoding: utf-8
import tkinter
listDat = []
# 计算过程
def clacProcess(key, strData):
    # '='则计算结果
    if key == '=':
        try:
            strData.set(eval(strData.get()))
        except:
            strData.set('Input Error!')
        #print(strData.get())
        finally:
            # 原地清除列表
            listDat.clear()      
    elif key == 'c':
        listDat.clear()
        # 清空显示框
        strData.set('')
    else:
        listDat.append(key)
        # 列表变量连接成一个字符串
        strData.set(''.join(listDat))
# 主函数
def main():
    win = tkinter.Tk()
    win.title('计算器')
    # 文本框事件绑定
    strData = tkinter.StringVar()
    # 创建文本框
    entry = tkinter.Entry(win, textvariable=strData)
    # 装载文本框
    entry.pack(fill=tkinter.X)
    # 按键设置
    for buttonKey in ['789/', '456*', '123+', '-0.=', 'c']:
        keyFrame = tkinter.Frame(win)
        keyFrame.pack()
        for rowKey in buttonKey:
            #button = tkinter.Button(keyFrame, text=rowKey, command=lambda key=rowKey, ent=entry: clacProcess(key, strData))
            if len(buttonKey) == 1:
                button = tkinter.Button(keyFrame, text=rowKey, command=lambda key=rowKey, ent=entry: clacProcess(key, strData), width=32)
                button.pack(side=tkinter.LEFT)
            else:
                button = tkinter.Button(keyFrame, text=rowKey, command=lambda key=rowKey, ent=entry: clacProcess(key, strData), width=5)
                button.pack(side=tkinter.LEFT)
    win.mainloop()
# 函数执行语句
if __name__ == '__main__':
    main()

运行结果:
简简单单在,不足的地方还有许多这里插入图片描述
不足的地方还有许多。

猜你喜欢

转载自blog.csdn.net/weixin_43690548/article/details/87923170