自学一段时间后,想做个小项目练练手,就用python写了个小程序,求健康指数(没什么难度,但可以练练手)。其中涉及到tkinter的Lable,Button,Image的应用及python的基本语法和获取异常处理,源码在下。
import tkinter
import tkinter.messagebox
from PIL import Image,ImageTk
win = tkinter.Tk()
win.title("BMI计算")
win.geometry("600x600")
Frame_one = tkinter.Frame(win) # 先创建一个容器放上面存放登录
Frame_one.pack(side='top')
Frame_two = tkinter.Frame(win) # 再创建一个容器放中间存放密码
Frame_two.pack()
Frame_three = tkinter.Frame(win) # 再创建一个容器在下面存放按钮
Frame_three.pack(side='bottom')
Label_one = tkinter.Label(Frame_one, text='身高(CM):')
Label_two = tkinter.Label(Frame_two, text='体重(KG):')
Entry_one = tkinter.Entry(Frame_one, bd=5)
Entry_two = tkinter.Entry(Frame_two, bd=5, )
def test():
a = Entry_one.get()
b = Entry_two.get()
if a<=0:
print("输入异常")
def event1():
try:
if Entry_one.get().isdecimal():
pass
else:
raise Exception("请输入正确的数值")
high = float(Entry_one.get()) / 100
weight = float(Entry_two.get())
if high<=0 or weight<=0 :
raise Exception("输入的值不能为负数")
bmi = weight / (high * high)
bmi = ('%.4f' % bmi)
result = tkinter.messagebox.showinfo(title='BMI', message="您的BMI为:" + bmi)
except Exception as d:
result = tkinter.messagebox.showinfo(title='错误!', message="请输入正确的数值!")
finally:
Entry_one.delete(0, 'end')
Entry_two.delete(0, 'end')
Button_one = tkinter.Button(Frame_three, text='查询', width='10', command=event1)
def event2():
Entry_one.delete(0, 'end')
Entry_two.delete(0, 'end')
Button_two = tkinter.Button(Frame_three, text='取消', width='10', command=event2)
Button_one.pack(side='left')
Button_two.pack(side='right')
Label_one.pack(side='left')
Entry_one.pack(side='right')
Label_two.pack(side='left')
Entry_two.pack(side='right')
Frame_four=tkinter.Frame(win)
Lable_one=tkinter.Label(Frame_four,text="身体质量指数,是BMI指数,简称体质指数,\
是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。\
计算公式为:BMI=体重÷身高2。(体重单位:千克;身高单位:米。\
BMI由19世纪中期的比利时通才凯特勒最先提出。",anchor=tkinter.NW, wraplength=280)
Lable_one.pack()
img_open = Image.open('E:\桌面文档\qqq.jpg')
img_png = ImageTk.PhotoImage(img_open)
label_img = tkinter.Label(Frame_four, image = img_png)
label_img.pack()
Frame_four.pack()
win.mainloop()