新年的第一篇,桃子先祝大家2018新年快乐,让2017成为历史,铭记留下的愿望和理想,让我们2018更进一步。
如果大家以前学过C语言的都知道,入门的时候,C语言的运行环境都是这个
不管是结果还是输入,都是在这个环境下完成的。而不像别人家的程序,都是这个样的
有窗口,有菜单,有输入有反馈。
今天,我就给大家讲一下,用python如何写一个窗口工具。
例程的运行效果是这样的
这是我工作中经常要进行一个波长向拉曼位移转换这样一个事,我嫌每次计算麻烦,就写了这个小工具。
正文开始:
一、库
要写出这样一个界面我们需要一个库的支持,这个库的名字叫“Tkinter”.
先介绍一下tkinter:Tkinter模块("Tk接口")是Python的标准Tk GUI工具包的接口——from百度百科。简单的讲,就是写用户使用界面的。
这种GUI工具,除了Tkinter还有pygtk,pyqt,wxpython(抱歉,我都没用过)
Tkinter简单好用,作为一项业余技能,足够用了。
二、程序
# -*- coding: utf-8 -*-
"""
Created on Wed Sep 20 14:47:10 2017
@author: Tanry
"""
from Tkinter import * #调用Tkinter库
def Trans():
nm = e1.get()
cm = e2.get()
lm=e.get()
if isnum(lm):#判断测试波长为数字
if nm != "":
if isnum(nm):#判断输入波长为数字
e2.delete(0,END)
c=(1/(float(lm))-1/(float(nm)))*1e7
e2.insert(END,str(c))
else:
e2.delete(0,END)
e2.insert(END,"输入波长不合法")
elif isnum(cm):
e1.delete(0,END)
c=1/(1/(float(lm))-float(cm)/1e7)
e1.insert(END,str(c))
else:
e1.delete(0,END)
e1.insert(END,"输入波长不合法")
def clearall():
e2.delete(0,END)
e1.delete(0,END)
def prt(event):
print("123")
def isnum(a):
if a.isdigit():#是整数
return 1
else:
try:
float(a)
return 2
except ValueError:
return 0
root=Tk() #创建窗口对象,相当于一个画布,所有的模块都放在这个画布上
root.wm_title("拉曼位移与波长转换") #创建窗口对象的名字
#创建模块
w1=Label(root,text="测试激光波长")#第一个Label模块W1,模块的第一个参数就##是此模块放置的窗口对象
w1.grid(row=0,column=0)#w1模块放置位置
e=Entry(root)#创建一个Entry模块,输入窗口
e.grid(row=0,column=1)
e.insert(0,"785")#输入窗口的默认输入值
w2=Label(root,text="波长/nm")
w2.grid(row=1,column=0)
w3=Label(root,text="拉曼位移/cm-1")
w3.grid(row=2,column=0)
e1=Entry(root)
e1.grid(row=1,column=1)
e2=Entry(root)
e2.grid(row=2,column=1)
button1=Button(root,text="转换",command=Trans,width=30,height=1)#创建一个按钮,#按钮按下要触发一个程序,程序的名称放在command下
button1.grid(row=3,column=0,ipadx=5,ipady=5)
button2=Button(root,text="清除",command=clearall,width=30,height=1)
button2.grid(row=3,column=1,ipadx=5,ipady=5)
#所有的创建完成
root.mainloop()#最后要启动窗口,将控制权交给窗口
我将程序和结果窗口做了一对应
三、编译打包
其实,完成了程序。也只能在python环境下运行,并不能像别人家的程序一样,是个.exe,可以直接在windows下运行。
由python文件到.exe文件的变化叫编译打包,由于过程有点复杂(其实是我不太熟练),所以我先挖个坑,等下一节再讲如何打包。
最后的最后
给你看看编译打包好的是什么样子吧
就那个.exe,windows下直接运行。
Tkinter我讲不清楚,此篇的主要目的就是让大家知道python可以这么玩,至于学习tkinter,给大家几个连接,和一本书吧
http://www.runoob.com/python/python-gui-tkinter.html
https://pan.baidu.com/s/1qXApvJY
第一次见到那个exe时,管家羡慕的不得了。桃子说很简单,管家就信了。那天桃子说不知道写什么文章,我说就写这个小程序吧!
刚看到程序,我是懵的。天啊怎么这么长,真的不是在逗我么?后来又来回看了几遍,好像也没那么难。不过能看懂和能写是两回事。什么时候能玩转python呢?我觉得我需要一万小时。哈哈!
建议把正文copy到电脑上的python程序里看,格式才比较好看。
每次觉得自己好像有点努力了,快被自己感动了,然后就发现那个比自己聪明的家伙还在加班、还在努力。真真是没活路了!放开那82的拉菲,我来!
领取专属 10元无门槛券
私享最新 技术干货