文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python Tkinter学习之计算器

2023-01-31 00:53

关注

初学Python tkinter,利用目前所学编写一个简单的计算器练习一下。

预期效果:

1.能够实现加减乘除运算,

2.只能输入数字

3.通过按钮选择进行哪种运算。

4.结果框不能修改,智能复制

5.按清除按钮能够清除所有内容


from  tkinter import *

count = Tk()
count.title("纯醪八盅@计算器")

def clear():
    v1.set("")
    v2.set("")
    v3.set("")
def calc():
    print(v1.get(),v2.get())
    print(v4.get())
    if v4.get()=="+":
        result = int(v1.get()) + int(v2.get())
    elif v4.get()=="-":
        result = int(v1.get()) - int(v2.get())
    elif v4.get()=="x":
        result = int(v1.get()) * int(v2.get())
    else:
        result = int(v1.get()) / int(v2.get())
    v3.set(result)

def test(content):
    return content.isdigit()



frame = Frame(count)
frame.pack(padx=10,pady=10)

v1=StringVar()
v2=StringVar()
v3=StringVar()

testEnt = count.register(test)

entry_1 = Entry(frame,width = 10,textvariable=v1,validate="key",validatecommand=(testEnt,"%P"))#
entry_1.grid(row=0,column=0,padx=5,pady=5)

v4=StringVar()
v4.set("+")
label = Label(frame,textvariable=v4).grid(row=0,column=1,padx=5,pady=5)

entry_2 = Entry(frame,width = 10,textvariable=v2,validate="key",validatecommand=(testEnt,"%P"))
entry_2.grid(row=0,column=2,padx=5,pady=5)

label2 = Label(frame,text="=").grid(row=0,column=3,padx=5,pady=5)

entry_3 = Entry(frame,width = 10,textvariable=v3,state ="readonly")#显示结果的区域只读,不可修改
entry_3.grid(row=0,column=4,padx=5,pady=5)
def set1():
    v4.set("+")
def set2():
    v4.set("-")
def set3():
    v4.set("x")
def set4():
    v4.set("/")
button1 = Button(frame,text="+",command = set1).grid(row=1,column=1,padx=5,pady=5)
button2 = Button(frame,text="-",command = set2).grid(row=1,column=2,padx=5,pady=5)
button3 = Button(frame,text="x",command = set3).grid(row=1,column=3,padx=5,pady=5)
button4 = Button(frame,text="/",command = set4).grid(row=1,column=4,padx=5,pady=5)

button5 = Button(frame,text="清空",command = clear).grid(row=2,column=1,padx=5,pady=5)
button6 = Button(frame,text="=",command=calc).grid(row=2,column=3,padx=5,pady=5)


mainloop()

效果截图:

wKiom1mJZs7TDPiKAABYyzrtjhY495.png-wh_50

wKioL1mJZs6ibPCxAABZiuCSn0w482.png-wh_50

wKioL1mJZs-SLAINAABZk5mRCVI221.png-wh_50

wKiom1mJZs-yPWM_AABZzEDtT_4622.png-wh_50

wKioL1mJZtDxoLbvAABXSWYUeIE736.png-wh_50


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯