用Tkinter写一个拥有GUI的计算器

Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。我们可以使用它写出很多漂亮的GUI,这次,我写了一个计算器。

#tkinter用于写界面
import tkinter as tk
#创建窗口
window=tk.Tk()
window.title('计算器 by啊不嘟')
#窗口居中
sw = window.winfo_screenwidth()
sh = window.winfo_screenheight()
ww = 300
wh = 355
x = (sw-ww) / 2
y = (sh-wh) / 2
window.geometry("%dx%d+%d+%d" %(ww,wh,x,y))
#禁止拉伸
window.resizable(width=False, height=False)
#定义按键作用
def hit_equal():
try:
answer=eval(text.get().replace('×','*').replace('÷','/').replace('^','**'))
if answer%1==0:
answer=int(answer)
text.delete(0,'end')
text.insert('end',answer)
except:
text.delete(0,'end')
text.insert('end','错误')
def hit(x):
text.insert('end',x)
def hit_C():
text.delete(0,'end')
def backspace():
text.delete(len(text.get())-1,'end')
#定义并放置大框框
text = tk.Entry(window, bg='white', width=17, font=('微软雅黑', 19))
text.place(x=20, y=10)
text.insert('end', '')
#创建按键并放置在窗口
b7=tk.Button(window,text='7',width=6,height=2,command=lambda: hit('7')).place(x=20,y=113)
b8=tk.Button(window,text='8',width=6,height=2,command=lambda: hit('8')).place(x=87,y=113)
b9=tk.Button(window,text='9',width=6,height=2,command=lambda: hit('9')).place(x=157,y=113)
b4=tk.Button(window,text='4',width=6,height=2,command=lambda: hit('4')).place(x=20,y=173)
b1=tk.Button(window,text='1',width=6,height=2,command=lambda: hit('1')).place(x=20,y=233)
b5=tk.Button(window,text='5',width=6,height=2,command=lambda: hit('5')).place(x=87,y=173)
b6=tk.Button(window,text='6',width=6,height=2,command=lambda: hit('6')).place(x=157,y=173)
b2=tk.Button(window,text='2',width=6,height=2,command=lambda: hit('2')).place(x=87,y=233)
b3=tk.Button(window,text='3',width=6,height=2,command=lambda: hit('3')).place(x=157,y=233)
b_decimal_point=tk.Button(window,text='.',width=6,height=2,command=lambda: hit('.')).place(x=157,y=293)
b0=tk.Button(window,text='0',width=6,height=2,command=lambda: hit('0')).place(x=87,y=293)
b00=tk.Button(window,text='00',width=6,height=2,command=lambda: hit('00')).place(x=20,y=293)
bbackspace=tk.Button(window,text='←',width=6,height=2,command=backspace).place(x=87,y=53)
bC=tk.Button(window,text='C',width=6,height=2,command=hit_C).place(x=20,y=53)
b_cube_root=tk.Button(window,text='xⁿ',width=6,height=2,command=lambda: hit('^')).place(x=157,y=53)
b_plus=tk.Button(window,text='+',width=6,height=2,command=lambda: hit('+')).place(x=227,y=53)
b_minus=tk.Button(window,text='-',width=6,height=2,command=lambda: hit('7')).place(x=227,y=113)
b_multiplication=tk.Button(window,text='×',width=6,height=2,command=lambda: hit('×')).place(x=227,y=173)
b_division=tk.Button(window,text='÷',width=6,height=2,command=lambda: hit('÷')).place(x=227,y=233)
b_equal=tk.Button(window,text='=',width=6,height=2,command=hit_equal).place(x=227,y=293)
#会话循环
window.mainloop()

版权声明:
作者:啊不都
链接:https://www.oplog.cn/archives/12.html
来源:操作员日志
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>