Python之tkinter

新年的第一篇,桃子先祝大家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的拉菲,我来!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180110G0UPVF00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券