Python小练习之简单计算机之Tkinter(3)

本文介绍了一个使用Python的Tkinter模块创建的简易计算器界面。通过引入输入验证,确保只有数字可以被输入,并实现了基本的数学运算功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天要连发俩篇了,这是一个简单的计算机窗口化界面,运用的当然还是我们的Python的Tkinter模块生成的啦。这一篇比上一篇相比,在Enter中加上了输入检验,倘若不符合标准,当然是显示不了的了。
这就必须用到三个参数:
1.validate
2.validatecommand
3.invalidatecommand
1、validate的作用是选择如何检验,我在此次练习中使用的是 ‘key’
2、validatecommand是指向检验方法,当你输入时,会通过此指向的方法进行检验
3、invalidatecommand是当validatecommand检验后不符合,返回False时,会指向此指向的方法。
此处是我的代码:

import tkinter

#创建窗口
root = tkinter.Tk()
#创建框架
frame = tkinter.Frame(root)
#摆放框架
frame.pack(padx= 10,pady = 10)

#创建变量
v1 = tkinter.StringVar()
v2 = tkinter.StringVar()
v3 = tkinter.StringVar()

#创建标签
L1 = tkinter.Label(frame,text = '简单计算器',font = '微软雅黑,30')
L2 = tkinter.Label(frame,text = '=')
#摆放标签
L1.grid(row = 0,column = 2,pady = 10,padx = 10)
L2.grid(row = 1,column = 3,padx= 10,pady = 10)

#定义筛选方法
def text(content):
    return content.isdigit()

#创建输入窗口
e1 = tkinter.Entry(frame,width = 10,textvariable = v1,validate = 'key',validatecommand = (text,'%P'))
e2 = tkinter.Entry(frame,width = 10,textvariable = v2,validate = 'key',validatecommand = (text,'%P'))
e3 = tkinter.Entry(frame,width = 10,textvariable = v3,validate = 'key',validatecommand = (text,'%P'),state ='readonly')

#摆放输入
e1.grid(row = 1,column = 0,pady =10,padx = 10)
e2.grid(row = 1,column = 2,padx = 10,pady = 10)
e3.grid(row = 1,column = 4,padx = 10,pady = 10)

#定义计算方法
def add():
    result = int(v1.get()) + int(v2.get())
    v3.set(result)
def subtract():
    result = int(v1.get()) - int(v2.get())
    v3.set(result)
def ride():
    result = int(v1.get()) * int(v2.get())
    v3.set(result)
def division():
    result = int(v1.get()) / int(v2.get())
    v3.set(result)

#创建按键
b0 = tkinter.Button(frame,text = '+',command = add,bd = 5)
b1 = tkinter.Button(frame,text = '-',command = subtract,bd = 5)
b2 = tkinter.Button(frame,text = '*',command = ride,bd = 5)
b3 = tkinter.Button(frame,text = '/',command = division,bd = 5)

#摆放按键
b0.grid(row = 2,column = 0,padx = 10,pady = 10)
b1.grid(row = 2,column = 1,pady = 10)
b2.grid(row = 2,column = 2,pady = 10)
b3.grid(row = 2,column = 3,pady = 10)

#进入消息循环
root.mainloop()

注释很多,大家应该可以看得懂。下面是我执行后得到的结果:
在这里插入图片描述
这是刚执行后得到的结果图,现在往里面输入数据,执行加减乘除:
在这里插入图片描述
这是乘
在这里插入图片描述
这是加
在这里插入图片描述
这是减
在这里插入图片描述
这是除
好啦好啦,今天的展示就结束了,希望可以得到大家的指正。哈哈,再见,以后的更新可能会参与很多新的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值