在好例子网,分享、交流、成长!
您当前所在位置:首页Python 开发实例Python语言基础 → 林业SCI计算器(tkinter示例)

林业SCI计算器(tkinter示例)

Python语言基础

下载此实例
  • 开发语言:Python
  • 实例大小:6.09KB
  • 下载次数:11
  • 浏览次数:131
  • 发布时间:2020-02-24
  • 实例类别:Python语言基础
  • 发 布 人:lihaizhu2000
  • 文件格式:.py
  • 所需积分:2
 相关标签: 计算器 Tkinter SCI

实例介绍

【实例简介】

【实例截图】

from clipboard

【核心代码】


#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()


标签: 计算器 Tkinter SCI

实例下载地址

林业SCI计算器(tkinter示例)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警