Python Tkinter实现简易图形界面计算器

许南星
许南星
发布时间:2026-10-13 | 5人浏览过
原创

本文介绍使用Python Tkinter库开发简易图形界面计算器的完整过程。通过构建主窗口、标签显示框及数字与运算符按钮,利用全局变量累积表达式,并调用eval函数执行计算。代码包含界面布局、事件绑定及颜色切换功能,适合Python初学者学习GUI编程基础。

Python Tkinter简易计算器实现概述

本文分享了一个使用Python编写的计算器具体实现代码,供读者参考学习。

该程序主要依赖Python内置的Tkinter库来构建图形用户界面,整体逻辑较为简单。下面直接展示最终的图形界面效果及对应的源代码。

首先,需要导入Tkinter库以使用其提供的GUI组件。

Tkinter库导入与主窗口设置


from tkinter import *

接着,创建主窗口对象,并设置窗口的标题、几何尺寸以及背景颜色。


window=Tk() #设置窗口对象
window.title('counting machine')
window.geometry("350x280")
window['bg']='red'

在窗口顶部建立标签框和标签组件,用于实时显示用户输入的运算字符串及计算结果。

显示标签框与全局变量定义


frame=LabelFrame(window,bg='yellow',width=350,height=50)
frame.pack()
frame.place(x=0,y=0)
label=Label(frame,text="1+1=2",height=3,width=50,bg='yellow')
label.pack() #显示框

定义一个全局字符串变量s,用于存储用户点击按钮生成的运算表达式。每点击一个按钮,就将对应的字符追加到变量s中。最终,程序利用Python内置的eval函数对字符串表达式进行求值计算。


global s
s=""

实现数字按钮0-9以及小数点的功能。基本思路一致:点击按钮时,将对应的数字或小数点字符追加到全局变量s中,并更新标签显示。

数字按钮与运算符按钮实现


#按钮.
def figure_dot():
 global s
 s=s+"."
 label.config(text=s)
btn0=Button(window,text=".",width=4,command=figure_dot,bg='yellow')
btn0.place(x=150,y=220) #按钮.
#按钮0
def figure_0():
 global s
 s=s+"0"
 label.config(text=s)
btn0=Button(window,text="0",width=4,command=figure_0,bg='yellow')
btn0.place(x=80,y=220) #按钮0
#按钮1
def figure_1():
 global s
 s=s+"1"
 label.config(text=s)
btn1=Button(window,text="1",width=4,command=figure_1,bg='yellow')
btn1.place(x=10,y=80) #按钮1
#按钮2
def figure_2():
 global s
 s=s+"2"
 label.config(text=s)
btn2=Button(window,text="2",width=4,command=figure_2,bg='yellow')
btn2.place(x=80,y=80)#按钮2
#按钮3
def figure_3():
 global s
 s=s+"3"
 label.config(text=s)
btn3=Button(window,text="3",width=4,command=figure_3,bg='yellow')
btn3.place(x=150,y=80)#按钮3
#按钮4
def figure_4():
 global s
 s=s+"4"
 label.config(text=s)
btn4=Button(window,text="4",width=4,command=figure_4,bg='yellow')
btn4.place(x=10,y=130)#按钮4
#按钮5
def figure_5():
 global s
 s=s+"5"
 label.config(text=s)
btn5=Button(window,text="5",width=4,command=figure_5,bg='yellow')
btn5.place(x=80,y=130)#按钮5
#按钮6
def figure_6():
 global s
 s=s+"6"
 label.config(text=s)
btn6=Button(window,text="6",width=4,command=figure_6,bg='yellow')
btn6.place(x=150,y=130)#按钮6
#按钮7
def figure_7():
 global s
 s=s+"7"
 label.config(text=s)
btn7=Button(window,text="7",width=4,command=figure_7,bg='yellow')
btn7.place(x=10,y=180)#按钮7
#按钮8
def figure_8():
 global s
 s=s+"8"
 label.config(text=s)
btn8=Button(window,text="8",width=4,command=figure_8,bg='yellow')
btn8.place(x=80,y=180)#按钮8
#按钮9
def figure_9():
 global s
 s=s+"9"
 label.config(text=s)
btn9=Button(window,text="9",width=4,command=figure_9,bg='yellow')
btn9.place(x=150,y=180)#按钮9

实现加减乘除四则运算符号按钮的功能。点击运算符时,将其追加到全局变量s中,并更新标签显示。


#加法按钮
def figure_addition():
 global s
 s=s+"+"
 label.config(text=s)
btn_add=Button(window,text="+",width=4,command=figure_addition,bg='yellow')
btn_add.place(x=220,y=80)#加法按钮
#减法按钮
def figure_subtraction():
 global s
 s=s+"-"
 label.config(text=s)
btn_sub=Button(window,text="-",width=4,command=figure_subtraction,bg='yellow')
btn_sub.place(x=220,y=130)#减法按钮
#乘法按钮
def figure_multiplication():
 global s
 s=s+"*"
 label.config(text=s)
btn_multi=Button(window,text="*",width=4,command=figure_multiplication,bg='yellow')
btn_multi.place(x=290,y=80)#乘法按钮
#除法按钮
def figure_division():
 global s
 s=s+"/"
 label.config(text=s)
btn_divi=Button(window,text="/",width=4,command=figure_division,bg='yellow')
btn_divi.place(x=290,y=130)#除法按钮

实现清空按钮的功能。点击该按钮时,将全局变量s重置为空字符串,并清空标签显示。

清空与结果计算功能


#清空按钮
def figure_clear():
 global s
 s=""
 label.config(text=s)
btn_clear=Button(window,text="clear",width=4,command=figure_clear,bg='yellow')
btn_clear.place(x=220,y=180)#清空按钮

实现结果输出功能。点击等号按钮时,程序调用eval函数对全局变量s中的表达式进行计算,将结果转换为字符串并显示在标签上。


#结果按钮
def figure_value():
 global s
 x=eval(s)
 s=str(x)
 label.config(text=s)
btn_value=Button(window,text="=",width=4,command=figure_value,bg='yellow')
btn_value.place(x=290,y=180)

实现背景颜色变换功能。点击特定按钮时,将主窗口的背景色由红色变为粉色。

界面颜色切换与主循环


def figure_colorchange():
 window.config(bg="pink")
btn_value=Button(window,text="color",width=4,command=figure_colorchange,bg='yellow')
btn_value.place(x=10,y=220)#改变颜色
window.mainloop()

颜色变换后的界面效果展示。

至此,一个简易的计算器功能已实现。开发者可根据需要扩展其他功能,例如开方、乘幂等数学运算。

以上就是本文的全部内容,希望这对大家学习Python有所帮助,也欢迎大家继续支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表