#!/usr/bin/python # -*- coding: UTF-8 -*- import xlrd #openpyxl模块 无法打开xls文件 故用这个模块 # import openpyxl #可读取表格文件里的 图片 且读取的数量比较大 import PIL from PIL import Image, ImageTk from openpyxl import workbook from openpyxl import load_workbook import os from tkinter import * import tkinter as tk from tkinter import scrolledtext from tkinter import filedialog #导入打开文件夹对话框 # 导入消息对话框子模块 import tkinter.messagebox #数据使用的全局变量######## data = [] # 将表格数据注入到该变量 findData = [] # 查询到的数据注入到该变量 # [['1', '槐', '性耐寒,喜阳光,稍耐阴,不耐阴湿而抗旱,在低洼积水处生长不良,深根,对土壤要求不严,较耐瘠薄,石灰及轻度盐碱地(含盐量0.15%左右)上也能正常生长。但在湿润、肥沃、深厚、排水良好的沙质土壤上生长最佳。 耐烟尘,能适应城市街道环境。病虫害不多。寿命长,耐烟毒能力强。', '可作行道树,并为优良的蜜源植物。槐花花蕾可食,含芳香油,又为清凉性收敛止血药;槐实亦能止血、降压;根皮、枝叶药用,治疮毒;种子含油约11%;木材供建筑。', '豆科', '槐属', '乔木,高达25米;树皮灰褐色,具纵裂纹。当年生枝绿色,无毛。羽状复叶长达25厘米;叶轴初被疏柔毛,旋即脱净;叶柄基部膨大,包裹着芽;托叶形状多变,有时呈卵形,叶状,有时线形或钻状,早落;小叶4-7对,对生或近互生,纸质,卵状披针形或卵状长圆形,长2.5-6厘米,宽1.5-3厘米,先端渐尖,具小尖头,基部宽楔形或近圆形,稍偏斜,下面灰白色,初被疏短柔毛,旋变无毛;小托叶2枚,钻状。圆锥花序顶生,常呈金字塔形,长达30厘米;花梗比花萼短;小苞片2枚,形似小托叶;花萼浅钟状,长约4毫米,萼齿5,近等大,圆形或钝三角形,被灰白色短柔毛,萼管近无毛;花冠白色或淡黄色,旗瓣近圆形,长和宽约11毫米,具短柄,有紫色脉纹,先端微缺,基部浅心形,翼瓣卵状长圆形,长10毫米,宽4毫米,先端浑圆,基部斜戟形,无皱褶,龙骨瓣阔卵状长圆形,与翼瓣等长,宽达6毫米;雄蕊近分离,宿存;子房近无毛。荚果串珠状,长2.5-5厘米或稍长,径约10毫米,种子间缢缩不明显,种子排列较紧密,具肉质果皮,成熟后不开裂,具种子1-6粒;种子卵球形,淡黄绿色,干后黑褐色。花期7-8月,果期8-10月。', '', 'Sophora japonica Linn'], ['12', '槐', '喜光,适应干冷气候.耐瘠薄和轻盐碱土壤,对二氧化硫及烟尘抗性强;生长缓慢,寿命可长达千年以上。', '树姿优美,树皮洁白雅净。为珍贵庭园观赏树种。常植于公园、庭院、寺庙及墓地,北京尤多古树,生长好;长江流域各城市也有少量栽培,但生长较差。', '松科', '松属', '乔木,高达30米,胸径可达3米;有明显的主干,或从树干近基部分成数干;枝较细长,斜展,形成宽塔形至伞形树冠;幼树树皮光滑,灰绿色,长大后树皮成不规则的薄块片脱落,露出淡黄绿色的新皮,老则树皮呈淡褐灰色或灰白色,裂成不规则的鳞状块片脱落,脱落后近光滑,露出粉白色的内皮,白褐相间成斑鳞状;一年生枝灰绿色,无毛;冬芽红褐色,卵圆形,无树脂。针叶3针一束,粗硬,长5-10厘米,径1.5-2毫米,叶背及腹面两侧均有气孔线,先端尖,边缘有细锯齿;横切面扇状三角形或宽纺锤形,单层皮下层细胞,在背面偶尔出现1-2个断续分布的第二层细胞,树脂道6-7,边生,稀背面角处有1-2个中生;叶鞘脱落。雄球花卵圆形或椭圆形,长约l厘米,多数聚生于新枝基部成穗状,长5-10厘米。球果通常单生,初直立,后下垂,成熟前淡绿色,熟时淡黄褐色,卵圆形或圆锥状卵圆形,长5-7厘米,径4-6厘米,有短梗或几无梗;种鳞矩圆状宽楔形,先端厚,鳞盾近菱形,有横脊,鳞脐生于鳞盾的中央,明显,三角状,顶端有刺,刺之尖头向下反曲,稀尖头不明显;种子灰褐色,近倒卵圆形,长约1厘米,径5-6毫米,种翅短,赤褐色,有关节易脱落,长约5毫米;子叶9-11枚,针形,长3.1-3.7厘米,宽约1毫米,初生叶窄条形,长1.8-4厘米,宽不及1毫米,上下面均有气孔线,边缘有细锯齿。花期4-5月,球果第二年10-11月成熟。', '', 'Pinus bungeana Zucc']] searchIndex = 0 # 查到的数据变量索引,默认0 即第一个 pic_path = '' # 图片文件价路径 # ###创建窗体全局变量##### #创建主窗口 root = Tk() root.title('植物名录查询——运城学院园林植物数据库') # 设置窗口大小 root.minsize(750,750) # 设置单选按钮全局变量接收值 radioVal = StringVar() # 获取值方式 radioVal.get() radioVal.set('中文名') # 默认选择中文名 #定义变量 path = StringVar() path.set('') count = StringVar() count.set('') num = StringVar() num.set('') Cname = StringVar() Cname.set('') Fname = StringVar() Fname.set('') Gname = StringVar() Gname.set('') pic = StringVar() pic.set('') Lname = StringVar() Lname.set('') #右侧输出内容的标签进行占位 #num text, name text, habit text le_path = Label(root, textvariable = path,padx=30,anchor='w').place(x = 100, y = 80) # le_count = Label(root, textvariable = count,padx=30,anchor='w').place(x = 100, y = 110) # 注意不是没显示,而是被挡住了 故加外边框 le_num = Label(root, textvariable = num).place(x = 100, y = 140) # le_Cname = Label(root, textvariable = Cname).place(x = 100, y = 170) # le_Lname = Label(root, textvariable = Lname).place(x = 100, y = 200) # le_Fname = Label(root, textvariable = Fname).place(x = 100, y = 230) # le_Gname = Label(root, textvariable = Gname).place(x = 100, y = 260) # #设置滚动窗口文本 #习性 habits = tk.LabelFrame(root, text="习 性", padx=10, pady=10 ) # 水平,垂直方向上的边距均为 10 habits.place(x=40, y=290) habits_Window = scrolledtext.ScrolledText(habits, width=85, height=5, padx=10, pady=10, wrap=tk.WORD) habits_Window.grid() #用途 use = tk.LabelFrame(root, text="用 途", padx=10, pady=10 ) # 水平,垂直方向上的边距均为 10 use.place(x=40, y=430) use_Window = scrolledtext.ScrolledText(use, width=85, height=5, padx=10, pady=10, wrap=tk.WORD) use_Window.grid() #植物志 flora = tk.LabelFrame(root, text="植物志", padx=10, pady=10 ) # 水平,垂直方向上的边距均为 10 flora.place(x=40, y=570) flora_Window = scrolledtext.ScrolledText(flora, width=85, height=5, padx=10, pady=10, wrap=tk.WORD) flora_Window.grid() ###############全局变量结束################### #查询按钮响应函数 def select(root, label): #清空全局变量 global findData findData = [] global searchIndex searchIndex = 0 # print('result: ', findData) sname = label.get() # print(sname) # # print(data) # 遍历数据各个函数,看是否有相等的数据,并打印出来 for index in range(0,len(data)): # partData = [] if data[index][radioVal.get()]==sname: # print(data[index]) # for temp in data[index].items(): # partData.append(temp[1]) # # print(partData) findData.append(data[index]) #将查询到的数据压入一会儿渲染用的数组中 # print(findData) if len(findData) <= 0: tkinter.messagebox.showinfo('提示',sname+'植物名不存在,请输入其他植物名!') elif len(findData) >1: Button(ro
相关知识
基于深度学习的花卉检测与识别系统(YOLOv5清新界面版,Python代码)
基于python编程的五种鲜花识别
038基于深度学习的花卉自动识别pyqt界面
使用pandas绘制两列csv的直方图
基于Echarts的鸢尾花数据可视化
Python机器学习基础教程
基于TensorFlow的花卉识别系统代码和全部项目资料python实现.zip
基于flask+vue框架的网上花店销售管理系统[开题+论文+程序]
python利用c4.5决策树对鸢尾花卉数据集进行分类(iris)
【花店系统】花店系统 5.1
网址: 基于python的GUI可视化界面植物名录查询系统(直接读取excel内的表格数据) https://m.huajiangbk.com/newsview104970.html
上一篇: 科学网—植物学名里的春天 |
下一篇: 基于GIS的锡林郭勒草地资源监测 |