您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 2014年tkinter教程第二版
辛星2014年度辛星tkinter教程第二版tkinter1/1032014年辛星tkinter教程第二版2014年辛星Python界面编程教程第二版建议:可以搜索“辛星python”来找到更新更全的Python其他资料。另外:我之前是写过一个“2014年度辛星tkinter教程第一版”,全书只有28页,非常简短,大家可以快速的浏览一遍,来有个宏观的认识,这次我是想把它完善起来。说明:本书的写作时间是2014年7月,如果您在两年之后看到了本书,那么大可以丢弃,因为您肯定可以找到更新的版本了。版权:本书是在参考了一些互联网上的资料之后产生的,但是觉不存在单纯的抄袭现象,而且由于想树立一个“辛星”的牌子,所以,版权完全归属于笔者本人所有。说明:在当前Python3和Python2版本同时存在,且都有一定的影响力,但是两个版本之前还有着不小的差别。笔者在这里使用的是Python3.2,如果读者使用的是其他版本,可能有些代码需要做一些较小的改动以适应版本变动。版本:我使用的版本是windows7,Python版本是Python3.2.5,Tkinter版本是8.5。前进的路上,辛星陪伴您只要星哥在,编程充满爱辛星2014年度辛星tkinter教程第二版tkinter2/103前言…………………………………………………………4第一部分:tkinter基础知识第零节:认识tkinter……………………………………6第一节:开始第一个tkinter程序………………………11第二节:认识新组件—标签………………………………15第三节:组件讲解以及按钮………………………………20第四节:布局的讲解………………………………………27第五节:事件………………………………………………32第六节:输入框以及一个登录程序………………………36第七节:菜单………………………………………………40第八节:对话框和消息框…………………………………52第九节:常用控件介绍……………………………………57第十节:手绘图形…………………………………………64第十一节:窗口的一些美化………………………………69第十二节:ttk以及第一部分总结………………………72第二部分:tkinter界面应用程序第零节:实战的说明………………………………………75第一节:贪吃蛇……………………………………………77第二节:记事本……………………………………………85第三节:屏保程序…………………………………………94辛星2014年度辛星tkinter教程第二版tkinter3/103第四节:简易通讯录………………………………………98第五节:本部分总结………………………………………103辛星2014年度辛星tkinter教程第二版tkinter4/103前言*******************界面编程*************1.如果读者有过C++或者C#或者VB等语言的编程经验,甚至是咱们自己国家的易语言,它们都有一些可以通过拖拽的方式来编辑界面的工具。2.但是很可惜,在Python里面这种工具并不多,这也是和Python是一个脚本语言有关。3.要说tkinter,先说tk,它原本是Tcl编程语言的界面库,后来开发出了Python接口,Tkinter在Python2和Python3中的变化较大,在Python2中叫做Tkinter,在Python3中叫做tkinter,而且在导入类库的时候也有些许的变化,请读者稍加注意。***********************定位*************1.虽然我很喜欢Python,而且我认为掌握一门Python的界面编程也很有意思,虽然很多企业级的应用并不太会用它去写,但是它确实是很方便。2.有时候我们需要一些界面程序,但是又不想用那些庞大而繁杂的类库的时候,tkinter的优势就显现出来了,那就是简洁简单。3.我感觉tkinter是一个还不错的界面库,但是我感觉Python并不是特别擅长编写界面应用,而且我感觉比如wxPython或者pyQt等更胜一筹,因此也就没有对它投入太多的精力,会在后面的版本中有所加强。******************呼吁************1.我想开源运动已经被广为所知了,但是,我还没听到类似于大家共同打造一个完美教程的活动出现,因此,我在此呼吁大家可以团结起来,众人拾柴火焰高,来打造一个更加完美的教程。辛星2014年度辛星tkinter教程第二版tkinter5/1032.这样的教程必然可以集众人之所长,使得它更具有可读性和可用性。3.本教程虽然是辛星所写,版权归本人所有,其他人可以随意交换、印刷、传阅等等。************版本*************************1.该版本是2014年度辛星Python界面编程tkinter第二版,关于第一版大家可以去网上搜索,只有28页,介绍了tkinter的大致框架。2.关于后续版本,肯定会更加完善,期待您的关注。辛星2014年度辛星tkinter教程第二版tkinter6/103第一部分:tkinter基础知识第零节:认识tkinter**************从文件夹来寻找该模块***************1.Tkinter读的时候,T和K分别发音,inter单独发音,即读音如下“tea-key-inter”。2.该模块在我们安装python的时候一起被安装了,比如我的安装目录是:C:\Python32,则进入该目录,可以发现有不少的Tkinter的影子。3.在DLLs子目录下,可以看到如下动态链接库文件,截图如下(注意tk85.dll是与该模块直接相关的):4.在Lib子目录下,我们可以看到一个名为tkinter的子文件夹,截图如下:辛星2014年度辛星tkinter教程第二版tkinter7/1035.进入该文件夹,可以看到里面的全部文件,大多数都是.py文件,还有两个文件夹,第一个是和缓存有关的,第二个是和测试有关的,剩下的都是py文件,下面是截图:6.这些文件分别负责不同的功能,我们下面进入这个__init__.py,它有158K大小,且代码有3773行,该文件里有我们平时所频繁使用的绝大多数类,如果以后大家有什么新问题,可以通过阅读该文件来得到答案,因为源代辛星2014年度辛星tkinter教程第二版tkinter8/103码都给我们了,掌握了源代码就是掌握了第一手资料,解决问题会更加方便一些,但是,这个源代码并还不是真正意义上的第一手资料,随着学习的深入,大家会知道原因。该文件截图如下:7.其实在我们的安装模块中,还有一些其他的东西有着tkinter的影子,我就不一一介绍了。***********如何得到帮助*************1.第一点,我们上面说了,可以去源代码中一探究竟,比如该类有哪些方法,这些方法都是什么意思,可以去源代码中查看。2.使用help方法,如果阅读源代码解决不了的问题,help应该也意义不大。辛星2014年度辛星tkinter教程第二版tkinter9/1033.从互联网得到帮助,这个渠道就多了,比如搜索引擎,贴吧,论坛,QQ群什么的都可以。*************Tkinter简介**************1.提到Tkinter,不得不提一下GUI,GUI即graphicaluserinterface,即图形界面用户接口,是相对于我们学习绝大多数编程语言所接触到的“控制台”的那个黑乎乎的命令行所区分的编程模式。2.Tkinter是Tk的Python接口,而Tk原本是Tcl的GUI库,Tcl是一门语言,具体我就不多说了。********Tkinter的优点和缺点***************1.简单易学,相对于其他的比如PyGtk,PyQt等等,它确实太简单了,简单到了一定程度,甚至给人一种小儿科的感觉。2.可以使用少量的代码产生功能强大的GUI界面,这一点是相对于C++等语言来说的,这也是绝大多数脚本语言令人自豪的地方。3.跨平台,其实这一点,对于很多个人来说意义不大,甚至对于很多公司来说意义也不大,很多公司会为了很多平台单独开发的,这一点也可能会涉及到“跨平台同时也会丧失平台优势”等问题的思考。4.内置与Python里面的,这一点,不需要我们单独去安装,是方便了很多,也是一个Python里面的标准。5.缺点就是功能过于简单,对于一些很大型的应用,使用tkinter,我感觉这个框架提供的功能还是太少了,很多功能还是需要我们去做。辛星2014年度辛星tkinter教程第二版tkinter10/1036.还有一个缺点是相对于C++来说的,它的效率问题还是不算太高,对于一些对画面要求很高的,我还是有点担心它不能胜任。************起航之前的测试**************1.在我们编程之前,先开始一个小测试把,它只需要两行代码。2.我们在IDLE中书写两行,第一行是导入tkinter这个模块,注意大小写,因为Python是区分大小写的,第二行是使用一个测试函数。3.截图如下:4.运行效果截图:5.说明:如果点击上面的按钮,则按钮的名字会在两边不断的增加中括号,而点击下面的quit按钮,则退出程序。辛星2014年度辛星tkinter教程第二版tkinter11/103第一节:开始第一个tkinter程序*************前言交代***************1.至于用什么书写python代码,每个人都有各自的爱好,有人喜欢用IDLE,不管你用什么,我这里的示例全部采用Sublime。2.有些特别简单的例子,我也会在IDLE中展示。**********第一个程序****************1.我们新建一个无格式的文本文件,通常是.txt文件,然后修改名称为demo1.py,然后写三行代码。2.这三行代码的截图如下:3.然后保存,双击该py文件,如果操作系统不知道该如何打开该文件,那么它会提示用计算机上的其他程序打开,我们找到我们Python安装目录下的Python.exe,用它打开即可,运行效果如下:辛星2014年度辛星tkinter教程第二版tkinter12/1034.此时后面有个黑乎乎的控制台窗口,如果我们想双击之后直接看到我们创建的这个窗口,而不像看到这个命令行窗口,那么可以把demo1.py修改后缀名为demo1.pyw,并且用Python安装目录下的pythonw.exe打开即可,修改后的示意:辛星2014年度辛星tkinter教程第二版tkinter13/103*********代码解读*****************1.我不知道大家的Python基础怎么样,代码的第一行是引入了该模块,即fromtkinterimport*所做的工作。2.第二行是对Tk这个类进行实例化,即root是它的一个实例,是代码root=Tk()的作用。3.第三行进行事件循环,即root.mainloop()的作用,关于事件循环,我们后面会解释。***************Tk类解读**************1.官方对于该类的描述是“代表绝大多数应用程序主窗口的高层空间,它会和一个Tcl解释器相关联”,它继承自两个类,一个是Misc,另一个是Wm,我们这里使用的mianloop方法,就是从Misc里面继承来的。2.对于Tk,我们这么理解,就把它当做一个tkinter程序的所有窗口的老大即可,即所有的部件都需要先创建它。3.我们可以通过第零节介绍的方法阅读这两个类的源代码来得到一些信息,我是随便读了读Wm的源代码,发现了一个方法,可以修改这个窗口的标题,即wm_title方法,下面我用这个方法修改这个窗口的标题。4.代码如下:5.窗口效果如下:辛星2014年度辛星tkinter教程第二版tkinter14/103辛星2014年度辛星tkinter教程第二版tkinter15/103第二节:认识新组件---标签***********组件**************1.
本文标题:2014年tkinter教程第二版
链接地址:https://www.777doc.com/doc-5858804 .html