基本信息
源码名称:林业SCI计算器(tkinter示例)
源码大小:6.09KB
文件格式:.py
开发语言:Python
更新时间:2020-02-24
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
#pyinstaller -i xxxx.ico -w -F xxxx.py import tkinter as tk import tkinter.ttk as ttk import tkinter.messagebox as msg #定义函数 def is_real(num): try: float(num) except: return 0 else: return 1 def sci(HT=10.0,A=20.0): b = 0.0423 c = 5.5929 Ai = 40.0 sci = HT*(1 c*pow(2.7183,-b*A))/(1 c*pow(2.7183,-b*Ai)) return sci def run(event): md_10 = [1710,1580,1600,1480,1530,1390,1220,960] md_12 = [1210,1120,1130,1050,1090,990,860,680] md_16 = [850,780,790,730,760,690,600,470] md_20 = [630,580,590,550,570,520,450,360] md_24 = [560,520,520,490,500,460,400,310] result_ht = is_real(HT_entry.get()) result_dg = is_real(Dg_entry.get()) result_age = is_real(Age_entry.get()) if result_ht and result_dg and result_age: my_sci = sci(float(HT_entry.get()),float(Age_entry.get())) SCI.set(my_sci) if my_sci < 10.0 and float(Dg_entry.get()) < 10.5: Min.set(str(md_10[0])) Max.set(str(md_10[1])) elif my_sci >= 10.0 and my_sci < 15.0 and float(Dg_entry.get()) < 10.5: Min.set(str(md_10[2])) Max.set(str(md_10[3])) elif my_sci >= 15.0 and my_sci < 20.0 and float(Dg_entry.get()) < 10.5 : Min.set(str(md_10[4])) Max.set(str(md_10[5])) elif my_sci >= 20.0 and float(Dg_entry.get()) < 10.5: Min.set(str(md_10[6])) Max.set(str(md_10[7])) elif my_sci < 10.0 and float(Dg_entry.get()) >= 10.5 and float(Dg_entry.get()) < 14.5: Min.set(str(md_12[0])) Max.set(str(md_12[1])) elif my_sci >= 10.0 and my_sci < 15.0 and float(Dg_entry.get()) >= 10.5 and float(Dg_entry.get()) < 14.5: Min.set(str(md_12[2])) Max.set(str(md_12[3])) elif my_sci >= 15.0 and my_sci < 20.0 and float(Dg_entry.get()) >= 10.5 and float(Dg_entry.get()) < 14.5: Min.set(str(md_12[4])) Max.set(str(md_12[5])) elif my_sci >= 20.0 and float(Dg_entry.get()) >= 10.5 and float(Dg_entry.get()) < 14.5: Min.set(str(md_12[6])) Max.set(str(md_12[7])) elif my_sci < 10.0 and float(Dg_entry.get()) >= 14.5 and float(Dg_entry.get()) < 18.5: Min.set(str(md_16[0])) Max.set(str(md_16[1])) elif my_sci >= 10.0 and my_sci < 15.0 and float(Dg_entry.get()) >= 14.5 and float(Dg_entry.get()) < 18.5: Min.set(str(md_16[2])) Max.set(str(md_16[3])) elif my_sci >= 15.0 and my_sci < 20.0 and float(Dg_entry.get()) >= 14.5 and float(Dg_entry.get()) < 18.5: Min.set(str(md_16[4])) Max.set(str(md_16[5])) elif my_sci >= 20.0 and float(Dg_entry.get()) >= 15.5 and float(Dg_entry.get()) < 18.5: Min.set(str(md_16[6])) Max.set(str(md_16[7])) elif my_sci < 10.0 and float(Dg_entry.get()) >= 18.5 and float(Dg_entry.get()) < 22.5: Min.set(str(md_20[0])) Max.set(str(md_20[1])) elif my_sci >= 10.0 and my_sci < 15.0 and float(Dg_entry.get()) >= 18.5 and float(Dg_entry.get()) < 22.5: Min.set(str(md_20[2])) Max.set(str(md_20[3])) elif my_sci >= 15.0 and my_sci < 20.0 and float(Dg_entry.get()) >= 18.5 and float(Dg_entry.get()) < 22.5: Min.set(str(md_20[4])) Max.set(str(md_20[5])) elif my_sci >= 20.0 and float(Dg_entry.get()) >= 18.5 and float(Dg_entry.get()) < 22.5: Min.set(str(md_20[6])) Max.set(str(md_20[7])) elif my_sci < 10.0 and float(Dg_entry.get()) >= 22.5: Min.set(str(md_24[0])) Max.set(str(md_24[1])) elif my_sci >= 10.0 and my_sci < 15.0 and float(Dg_entry.get()) >= 22.5: Min.set(str(md_24[2])) Max.set(str(md_24[3])) elif my_sci >= 15.0 and my_sci < 20.0 and float(Dg_entry.get()) >= 22.5: Min.set(str(md_24[4])) Max.set(str(md_24[5])) elif my_sci >= 20.0 and float(Dg_entry.get()) >= 22.5: Min.set(str(md_24[6])) Max.set(str(md_24[7])) return else: msg.showinfo('海珠提示','所有输入必须是数值!') return def refresh(event): HT.set("") Dg.set("") Age.set("") SCI.set("") Min.set("") Max.set("") return True my_win = tk.Tk() my_win.title("SCI计算器Version_0.01") my_win.resizable(0,0) #定义变量 HT = tk.StringVar() Dg = tk.StringVar() Age = tk.StringVar() SCI = tk.StringVar() Min = tk.StringVar() Max = tk.StringVar() #第一行 HT_label = ttk.Label(my_win,text = "优势树高") HT_label.grid(row = 0,column = 0) HT_entry = ttk.Entry(my_win,textvariable = HT) HT_entry.grid(row = 0,column = 1) Dg_label = ttk.Label(my_win,text = "平均胸径") Dg_label.grid(row = 0,column = 2) Dg_entry = ttk.Entry(my_win,textvariable = Dg) Dg_entry.grid(row = 0,column = 3) #第二行 Age_label = ttk.Label(my_win,text = "平均林龄") Age_label.grid(row = 1,column = 0) Age_entry = ttk.Entry(my_win,textvariable = Age) Age_entry.grid(row = 1,column = 1) SCI_label = ttk.Label(my_win,text = "SCI___值") SCI_label.grid(row = 1,column = 2) SCI_entry = ttk.Entry(my_win,state = "readonly",textvariable = SCI) SCI_entry.grid(row = 1,column = 3) #第三行 Min_label = ttk.Label(my_win,text = "最佳保留") Min_label.grid(row = 2,column = 0) Min_entry = ttk.Entry(my_win,state = "readonly",textvariable = Min) Min_entry.grid(row = 2,column = 1) Max_label = ttk.Label(my_win,text = "最低保留") Max_label.grid(row = 2,column = 2) Max_entry = ttk.Entry(my_win,text = "最低保留",state = "readonly",textvariable = Max) Max_entry.grid(row = 2,column = 3) #第四行 Run_button = ttk.Button(my_win,text = "计 算") Run_button.bind("<Button-1>",run) Run_button.grid(row = 3,column = 0,columnspan = 2,sticky = tk.W) Refresh_button = ttk.Button(my_win,text = "刷 新") Refresh_button.bind("<Button-1>",refresh) Refresh_button.grid(row = 3,column = 2,columnspan = 2,sticky = tk.E) if __name__ == "__main__": my_win.mainloop()