利用tkinter实现简单计算器功能(不使用eval函数)

利用tkinter实现简单计算器功能(不使用eval函数)

一、思路

tkinter:
  • 布置主界面;
  • 上部为数字显示界面;
  • 下部为数字键与功能键界面;
逻辑:
  • 程序只考虑两个操作数进行计算的情况,不考虑复杂情况
展示:

在这里插入图片描述

二、代码实现

根据上述思路,利用python实现简单计算器程序,代码如下:

# 第一步:画出图形界面-上部
from tkinter import *

root = Tk() # 创建舞台
# 定义面板的大小
root.geometry('250x380')
root.title('Calculator')

# 定义面板
# Frame:框架,在屏幕上创建一块矩形区域,多作为容器来布局窗体
# bg代表背景颜色background,#dddddd是十六进制表示颜色的一个串
frame_show = Frame(width=300,height=150,bg='#dddddd')
frame_show.pack()

# 定义顶部区域,设置字符串-初始化为0
sv = StringVar()
sv.set('0')

# anchor:定义控件的锚点,西对齐”w”,东对齐”e”,北对齐”n”,南对齐”s”,默认为” center”
# 还有“nw”, “sw”, “se”, “ne”
# Label中的width和height单位不是像素,而是占据字符的位数
# font代表字体
show_label = Label(frame_show,textvariable=sv, \
                  bg='green', width=12, height=1, \
                  font=("黑体", 20, 'bold'), \
                  justify=LEFT, anchor='e')  #用label显示字符串
# padx和pady用于设置框架的外部填充显示,ipadx和ipady用于设置框架的内部显示
show_label.pack(ipadx=5, ipady=5, padx=10, pady=10)
#frame_show.pack()


# 第二步:画出图形界面-下部
# 定义退格函数
def delete():
    # 先用get获取sv的值,然后删掉其最后一位
    sv.set(sv.get()[:-1])

# 定义取反函数
def inverse():
    # 先用get获取sv的值,然后转换为整形,再乘-1
    inverse_value = float(sv.get()) * -1
    sv.set(inverse_value)

# 定义清零函数
def clear():
    global num1, num2, operator
    sv.set('0')
    num1 = ''
    num2 = ''
    operator = ''


# 定义下部按键区域
frame_bord 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值