《基于Python+Tkinter的Linux GUI辅助管理工具的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Python+Tkinter的Linux GUI辅助管理工具的设计与实现.docx(46页珍藏版)》请在三一办公上搜索。
1、论文分类号 TP393.092密 级 公开单位代码10183研究生学号200653H119林大学硕土学位论文基于PythOn+Tkinter的LinUXGUl辅助管理工具的设计与实现DesignandImplementationofGUIAidedManagementToolinLinuxBasedonPythonTkinter作者姓名:李悦专业:软件工程导师姓名:徐高潮及职称:教授学位类别:工程硕士论文起止年月:2008年9月至2009年9月基于Python+Tkinter的LinuxGUI辅助管理工具的设计与实现DesignandImplementationofGUIAidedManage
2、mentToolinLinuxBasedonPython+Tkinter作者姓名:李悦专业名称:软件工程指导教师:徐高潮学位类别:软件工程硕士答辩日期:2009年月日未经本论文作者的书面授权,依法收存和保管本论文书面版本、电子版本的任何单位和个人,均不得对本论文的全部或部分内容进行任何形式的复制、修改、发行、出租、改编等有碍作者著作权的商业性使用(但纯学术性使用不在此限)。否则,应承担侵权的法律责任。吉林大学博士(或硕士)学位论文原创性声明本人郑重声明:所呈交学位论文,是本人在指导教师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰
3、写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。学位论文作者签名:日期:年月日中国优秀博硕士学位论文全文数据库投稿声明研究生院:本人同意中国优秀博硕士学位论文全文数据库出版章程的内容,愿意将本人的学位论文委托研究生院向中国学术期刊(光盘版)电子杂志社的中国优秀博硕士学位论文全文数据库投稿,希望中国优秀博硕士学位论文全文数据库给予出版,并同意在中国博硕士学位论文评价数据库和CNKl系列数据库中使用,同意按章程规定享受相关权啦O论文级别:硕士博士学科专业:软件工程论文题目:基于PythOn+Tkinter的LinUXGUI辅
4、助管理工具的设计与实现作者签名:指导教师签名:年月日作者联系地址(邮编):吉林大学计算机科学与技术学院130012作者联系电话:内容提要当前,Linux技术得到飞速发展,Linux操作系统已经在各行各业得到广泛应用。特别是在个人桌面系统开始迅速普及。作为个人桌面系统,由于用户计算机水平有限,传统LinUX繁琐的命令行操作成为普及IinUX的最大障碍。因此,如何将LinUXShell下的大量应用软件快速构建配置一个方便易用的图形化接口,从而有效提高操作的易用性是亟待解决的问题。基于以上需求,本文基于Python语言,结合Tkinter和PWm模块,为LinUXShell应用软件提供一个方便简洁的
5、GUl图形化用户操作界面。同时,通过几个具有代表性的Linux交互命令程序的图形化系统辅助程序设计实例,详细阐述了PythOn+Tkinter实现Linux图形化辅助管理工具的细节和技术难点。实验表明,本文实现的辅助管理系统实例运行稳定,操作简单,验证了本文提出的图形化实现方法的可行性和合理性。同时,对今后IinUX图形化辅助管理软件的设计与实现工作具有一定的参考价值和借鉴意义。目录第1章前言11.1 LlNUX系统的背景简介11.2 开发图形化LINUX辅助管理系统的必要性21.3 LINUX辅助管理系统的设计目标分析31.4 LINux辅助管理系统的系统需求31.5 LINux辅助管理系统
6、的功能需求分析3第2章相关技术简介42.1 PYTHON简介42.1.1 什么是Python42.1.2 Python的特点42.1.3 Python的主要技术特征52.1.4 Python与Tkinter62.2 TKINTER和PMW控件简介72.2.1 TcVTk概述72.2.2 Tkinter的安装72.2.3 PmW控件组简介82.3 LlNUXSHELL命令介绍82.3.1 Shell简介82.3.2 Shell的种类9第3章开发环境及工具介绍103.1 运行环境103.2 开发环境及工具103.2.1 Vi编辑器介绍103.2.2 ViPython11第4章LINUX辅助管理系统
7、分析及设计124.1 系统分析124.2 系统需要的SHELL命令说明15第5章系统的实现185.1 界面的代码实现185.1.1 基础接口的实现185.1.2 解压/压缩接口的实现205.2 事件响应及命令调用部分说明255.2.1 定时关机模块的事件处理255.2.2 解压模块的事件处理255.2.3 压缩模块的事件处理26第6章实例测试286.1 定时关机测试286.2 解压模块测试286.3 压缩模块的测试30第7章总结与展望337.1 总结337.2 展望33参考文献35致谢37摘要1ABSTRACT31.1 第1章前言1.2 1.inux系统的背景简介随着LinUX技术的不断提高,
8、其强大的功能已为人们深刻认识,它已进入社会的各个领域并发挥着越来越重要的作用。Linux操作系统是一套免费使用和自由传播的类UniX操作系统,最初主要用于基于InteIx86系列CPU的计算机上,随着LinUX系统的普及,其他体系的计算机以及个人数字终端也在越来越多的采用LinUX操作系统。Linux操作系统是由通过互联网连接的成千上万的程序员参与设计和实现的。其目的是建立不受任何商品化软件版权制约的、广泛应用的Unix兼容产品。1.inux操作系统的创立者是LinUSTorvalds,最初的设计思想是设计一个代替Minix(一个操作系统教学演示程序)的操作系统。希望该操作系统可用于386、4
9、86或奔腾处理器的个人计算机上,并且具有Unix操作系统的全部功能。Linux操作系统具有卓越的高效性和灵活性,能够在PC计算机上实现全部的Unix特性,具有真正的多任务、多用户的处理能力。LinUX遵循GNU组织的公共许可证协议GPL,是一套符合POSlX标准的操作系统。Linux操作系统不仅包括完整的操作系统内核,而且还包括文本编辑器(例如vi,emacs)、高级语言编译程序(例如gcc)等多种应用软件。同时,它还包括带有多个窗口管理器的X-Windows图形用户操作界面,类似WindoWS系统,可以使用窗口、图标和菜单等多种图形控件对系统进行操作。1.inUX操作系统的全称是GNU/Li
10、nux,它是由GNU组织的开源软件和LinUX内核两个部分共同组成的一个操作系统,虽然这个系统诞生于1992年,比WindOWS操作系统要晚,但是与Windows相比它有很多独到的优势。开放性:Linux操作系统遵循PC)SIX开放系统互连(OSI)国际标准。多用户:Linux操作系统可以同时为不同用户使用,每个用户对自己的资源(例如:文件、目录、外设设备)具有特定的权限,彼此相对独立互不影响。多任务:Linux操作系统同时执行多个任务程序,而且各个程序的运行相对独立。友好的人机交互接口:Linux操作系统向用户提供了两种接口形式:用户命令行SHELL操作方式和图形化X-WindoWS操作方式
11、。用户可以使用图形化界面方便快捷地操作系统,同时,系统管理人员能够使用SHELL命令行方式灵活高效地管理系统。强大的网络功能:LinUX系统继承了UniX系统在网络方面的优势,完善的通过内核级实现的网络服务功能是LinUX一大特点。可靠的安全机制:Linux系统采取了很多安全机制,包括对读、写、执行的控制,审计跟踪程序的执行,以及对授权的监控等,为网络多用户环境中的用户提供了必要的安全保障。良好的可移植性:Linux系统是一套可移植的操作系统,从最初诞生的x86平台到今天各种各样的数字终端、单片机、监控系统以及复杂的分布式网络计算环境和网格计算都可以看见Linux系统的身影。1.3 开发图形化
12、LilnlX辅助管理系统的必要性作为LinUX应用的一部分,使用图形化接口GUl对LinUX系统进行操作和管理是十分必要的。在LinUX系统中,管理工具通常是采用控制台(SHELL命令行)的方式来进行操作的。复杂晦涩的SHELL命令和参数对初学者和一般用户来说是非常困难的,也对LinUX系统的普及尤其是作为桌面操作系统照成巨大障碍。如何给传统的命令行操作方式的系统管理命令提供一套图形化的便于操作和管理的GUI机制是目前Linux系统普及中亟待解决的问题,也是推广普及Linux必须解决的重要课题。本文针对以上问题,提出了采用Python脚本语言和图形化Tkinter模块建立快速图形化操作界面的方
13、法,并通过具体实例验证了该方法的可行性和稳定性,为LinUX系统的推广普及做了有益的探索。1.inux辅助管理系统的设计目标分析1.inux辅助管理系统的设计目标如下:(1)接口的设计:对项目的所有功能实现GUl用户交互接口,这个功能用PythOn的Tk模块实现。(2)解压缩程序的GUl模块:实现在LinUX下程序的压缩和解压缩操作,用户通过与程序交互的图形化操作实现传统的命令行功能。1.4 (3)定时自动关机程序的GUl模块:实现输入时间,自动关机的功能。1.5 1.inux辅助管理系统的系统需求1.6 本辅助管理系统是在LinUX系统下对其Shell命令和GUI程序设计的一种扩展,该辅助管
14、理系统是在SlaCkLinUX系统下以PythOn语言编写的,接口部分基于PythOn的Tkinter模块,功能实现部分主要依靠调用Linux下的Shell命令实现,使用者仅仅需要简单的图形化操作即能知道该软件的使用方法。1.7 1.inux辅助管理系统的功能需求分析该辅助管理系统为了方便用户使用LinUX系统,实现了一些简单的功能,用户可以通过其用户管理程序的模块,查看,删除,更改和创建用户和组,方便地实现对自己用户的管理和操作。另外一方面用户可以在该系统下实现对LinUX下几乎所有压缩包的解压操作,其中软件通过对本机上所有压缩包档的搜索,列出所有的压缩文件,用户只需点击鼠标即可实现解压。最
15、后,用户可以设定自己希望关机的时间,防止出现停电等意外情况的发生。第2章相关技术简介2.1 Pythoi简介2.1.1 什么是PythonPython是一种解释性的,面向对象的高层语言以及强大的网络服务器端脚本语言。与其他脚本语言一样,Python代码类似于伪代码。Python的语法规则和精巧设计使其便于多位程序员组成的开发团队阅读。该语言的语法并不丰富,但是很简洁。PythoIl的创始人为GuidovanRossum。1989年Guido决心开发一个新的脚本解释程序,作为ABC语言的一种继承。ABC语言是GUidO参加设计的一种教学语言。该语言非常优美和强大,是专门为非专业程序员设计的。但是
16、ABC语言因为非开放性的限制使其没有得到广泛应用。Python弥补了ABC语言的缺陷,与其它的语言如C、C+和JaVa结合非常好-7。同时,PythOn语言也借鉴了ModUIa.3语言。多种语言特点的借鉴和完善使Python语言形成了自己的优势和特点。2.1.2 PythOll的特点Python是一种脚本语言,它的语法表达优美易读,具有很多优秀的脚本语言的特点:解释语言,面向对象,内建的高级数据结构,支持模块和包,支持多种平台,可扩展性。而且它还支持交互式方式运行,图形方式运行。它的语法有很多与众不同的特性:1.多种运行方式:Python可以以命令行方式运行,同时,也可以交互式方式运行。图形集
17、成环境是开发工作变得很简单高效。2 .面向对象:Python是一个真正的面向对象语言。它甚至支持异常的处理。这种机制极大地减少了错误检查的工作量,加速了代码开发的速度。3 .模块和包:Python提供了各种各样的模块和包,丰富的模块库为程序设计者提供了快速开发方式。同时,与JPythOn共用的JaVa的类库也提高了PythOn的扩展性。4 .语言扩展:C、C+或JaVa语言都可以为Python编写新的模块。同时,也可以与PythOn直接编译,或者采用动态库装入方式实现。Python语言的块语句的表示不是C语言常用的对,或其它符号对,而是采用缩近表示法。采用这种方式具有以下优势:首先,使用缩近表
18、示法减少了视觉混乱,提高了代码的可阅读性;其次,它减少了程序员的自由度,更有利于统一风格,为代码维护减小开销卜7。5 .1.3Python的主要技术特征以上介绍了Python的基本特点,下面介绍Python语言的主要技术特征:自动内存管理:Python对象一旦变得无法利用就会被集中起来,PythOn履行把其标志成“无用信息”的职责。异常处理:异常处理支持在无需向代码中添加许多错误检查语句的情况下捕获错误。这个功能让PythOn程序从来不会崩溃,使得其总返回一个traceback消息。丰富的核心库:目前已经开发完成许多扩展模块并已成为标准Python工具库的构成部分,程序员可以在任何Python
19、应用程序中使用该工具库。Web脚本支持和数据处理:Python使编写顺利运行于几个环境之中的CGI程序成为可能。通过利用PythOn的内置类和常规表达式方法,分析XML、HTML、SHML以及其他各类文本。内置元素:PythOn提供一个由有用内置元素组成的大型列表,这些内置元素带有正确处理它们所需要的许多专用操作。开发流:尽管PyIhOn不需要任何编译或连结过程,但它支持字节编译。编译代码保存在名为字节代码的中间语言中,该中间语言可由带有PythOn虚拟机的任何系统加以访问。该特征提供类似于JaVa所提供的那类可移植性。应用程序无需编译就可以在几种不同的系统中使用。可嵌入与可扩展:Python
20、可以嵌入到采用许多程序设计和脚本语言编写的应用程序之中。物件分布:Python可用于实现需要与其他应用程序中的对象进行对话的历程。数据库:Python具有与所有主要商用数据库的接口,提供有几个用于处理展开文件数据库的工具程序,并实现可以把整个对象保存到文件的持久性对象系统。但其中最棒的数据库特征是Python定义了一个标准数据库API,正是它的存在使得应用程序容易移植到不同的数据库中。GUl应用程序:由于目前已为Python开发了许多图形用户界面绑定,因此可以创建实现GUl的应用程序,所创建的应用程序可以移植到许多系统调用、库、以及诸如WindowsMFC之类的窗口系统中。内省(introsp
21、ection):可以使用Python开发程序,以助于创建其他使用Python的程序。最重要的范例有调试器和配置文件程序。第三方集成:也正是PythOn以上的特点,更确切地说是优点促使我们使用这种语言编写Linux辅助管理系统-7。6 .1.4Python与Tkinter广义上来说,使用PythOn的GUl项目还有其他选项可供选择。但是,目前的Python己经选择支持Tkinter作为它的正式GUl实现。Tkinter是一个TkGUIAPI的标准面向对象接口,最初由SteenLumholdt编写,当时SteenLUmhOIdt在忙于利用Python改进GUI。Tkinter是一个成熟的跨平台接口
22、,它为GUI应用程序提供小型的配件集。但是,这并不意味着要固定于这个集合。Tkinter是可扩展的,即意味着可以使用第三方的配件程序包。Widget是用户接口元素,例如radiobutton(单选框)和IiStboX(列表框)等。Tkinter工具箱是一个强大的GUI框架,允许Python程序运行于Windows、UniX和MaeintoSh平台上。Tkinter和其他工具箱之间的主要不同在于可移植性方面。几乎所有的工具箱都适用于一些特定系统,例如KDE绑定LinuxMac工具箱绑定MaC都是支队一个特定平台提供支持的GUI实现,然而,Tkinter却允许读者编写可在许多平台运行而不用任何改动
23、的代码。Tkinter证明应用程序编程接口设计可与应用程序的事务历程分开创建。选择Tkimer作为自己的GUl环境时,主要必须考虑在何处防止正确的配件。完成可视化设计后,只需要把配件操作绑定到需要调用的具体函数上即可,至此图形接口准备停当。Tkimer还允许快速地处理按钮和窗口,并定义其属性。设计和创建自己的接口后,可以改变应用程序的函数而不对GUI代码进行任何改变。2.2 Tkinter和Pmw控件简介2.2.1 TcVTk概述Tk是一个流行的并经过认证的工具箱,由JohnOusterhout开发,可处理WindowsGUI时间和用户交互作用。该工具箱作为TeI的扩展加以提供。这就是为什么部
24、分Tkinter是TCI借口的原因所在。如果没有这些例程,管理GUl环境可能需要许多行代码的应用程序。该工具箱最初是由OUSterhOUt在BerkeIeyde加州大学开发作为TCl的补充。在转到SUnMicrosystems之后,Ousterhout成立了一个名叫Scriptics的公司(现在叫Ajuba),该公司致力于Tk和Tcl开发项目。目前许多语言都是用Tk,其中包括SCheme、PerI和PythOn。Tkimer是TkGUl工具箱的Python接口。Tcl是幕后语言,Tkinter使用它和Tk工具箱通信。Tcl和Tk都是开放源产品,目前正在进行开发的产品是Scriptics的工程师
25、和Tcl用户社团的其他用户共同合作开发的一部分。Scriptics负责源代码的并行版本系统(CVSjConcurrentVersioinsSystem)库,并欢迎其他任何人提交源代码改动和小补丁。2.2.2 Tkinter的安装下面介绍一下Tkinter的安装,对于Linux环境来说,Python一般是在安装系统的时候直接装好的,操作系统安装的是PythOn2.4,但是TCl和Tk则需要自己进行安装,下面给出了安装过程:下载所需的包TelTk8.4.1,下载文件tc18.4.13-src.tar.gz和tk8.4.1-src.tar.gz(方网站SCriPtiCS现在正在改版,下不到最新发布的
26、Tcl/Tk)打开终端进入下载文件夹中(Cd命令),用解压命令gunziptcl8.4.1.tar.gz和gunziptk.8.4.1.tar.gz进行解压。在终端下Cdunix进入UniX文件夹。键入./configure-prefix=/USr-enable-shared命令,以根据系统情况自动生成编译时所需的Makefiletgo键入make(回车),然后makeinstall来安装tcl模块。Tk模块安装过程同上。2.2.3 Pmw控件组简介在本项目中大量的使用了PmW控件,因此需要来介绍一下PmW控件:Python控件Pmw是一个合成控件,以Tkinter为基类是完全在Python内
27、写的。它们可以很方便地添加功能性应用,而不必写一堆代码。特别是,组合框和内部确认计划的输入字段放在一起是一个很有用的控件。PmW的安装过程是很简单的,如下:2.3 首先从2.4 1.inuxSheU命令介绍23.1Shen简介SheH是用户和LinUX操作系统之间的接口。LinUX中有多种She11,当前,默认Shen是BaShShell0LinUX系统的ShelI作为操作系统的外壳,为用户与操作系统内核交互操作提供桥梁。SheIl是一个命令语言解释器,具有一定数量的内建SheIl命令集。用户在提示符下输入的命令由shell先解释,然后交给LinUX核心处理。SheU既可以交互方式提供处理,同
28、时,也可以作为一种独立的程序设计语言来使用。shell程序设计语言支持绝大多数高级语言中的常见方式,如函数、变量、数组和程序控制结构L8-12o高效简洁的Shell脚本程序为LimIX系统管理员提供了有力的帮助。2.3.2Shell的种类1.inUX环境提供了多种Shen为使用者提供方便。最常用的是BoUnleShell(Sh)、Cshell(csh)和Kornshell(ksh)oBourneshell是UNIX最初使用的shell种类。LinUX操作系统缺省的shell是BoumeAgainShelI,它是BOUmeshell的扩展,简称BaSh。BaSh在BOUrneshell的基础上增
29、加了很多特性,例如命令补全、命令编辑和命令历史表等功能,它还借鉴了很多CShell和KOrnShell的优点,具有灵活强大的程序设计界面,同时又有很友好的用户接口。Cshell是一种比Boumeshell更适合程序设计者使用的shell,其语法类似C语言。LinUX为喜欢使用CSheIl的人提供了TCShoTCSh是CShell的扩展,提供了包括命令行编辑、单词补全、拼写校正、历史命令替换、作业控制以及类似C语言的语法,它兼容BaShShen,同时,又提供比BaShSheil更多的提示符参数。KomShell吸取了Cshell和BoumeShell的优点,同时,完全兼容BOUmeshell0L
30、inUX系统提供了PdkSh(ksh的扩展),支持任务控制,可以在命令行上挂起、后台执行、唤醒或终止程序。同时,LinUX操作系统还包括了一些流行的Shen种类,例如ash、ZSh等。每种ShelI都有一定的优势和用途,使用者可以根据自己的需要灵活选择。某些Shen具有专利,选择的时候需要注意版权保护。用户在登录到LinUX时由etcpasswd档来决定要使用哪个shelll3-15Jo第3章开发环境及工具介绍3.1 运行环境为了保证辅助管理系统运行的效率和可靠性,本系统开发环境配置如下:(1)软件环境:操作系统:SlaxLinux运行环境:Python2.4Shell种类:BashShell
31、(2)硬件环境:CPU:酷睿E6200;内存:2G;1.inuxext3分区:10G;1.inuxSWaP交换分区:IGo3.2 开发环境及工具3.2.1 Vi编辑器介绍Vi是ViSUalinterfaCe的简称,它是LinUX环境中最常用的文字编辑器。Vi与Emacs在Unix和Linux系统的编辑器中占有绝对的主导地位。Vi提供了常用的文本编辑功能,例如输出、删除、查找、替换、块操作等,同时,使用者也可以根据自己的需要对其进行定制。定制功能是Vi的一大特色之处。Vi具有区别于传统编辑软件的操作模式,例如没有菜单,只有命令,且命令繁多。Vi有3种基本工作模式:命令行模式、文本编辑输入模式和末
32、行控制模式。进行LinUX下的程序设计开发工作,首先必须选择一种文本编辑器。本文选择Vi的增强版本Vim作为代码编辑器。3.2.2 Vi+Python使用Vi编辑器实现文本的编辑,并用调试或者编译工具对其实现编译并使其程序运行,这是所有的LinUX程序员都了解的事情,这里亦是如此,由于PythOn语言是解释型语言,因此不同于C语言程序设计,对于其程序来说,只需要进行调试,而不需要进行编译,例如:将Vi编辑器编写好的代码程序保存到文件abc中,终端下用命令PythonabC进行执行即可实现对程序的调试和运行。第4章Linux辅助管理系统分析及设计4.1 系统分析整个系统用例图如4-1所示:解压缩
33、模块支持压缩文件的解压及打包文件的解包工作,流程图如图4-2:图4-2解压模块流程图压缩模块支持文件夹的打包和压缩,流程图如图43:图4-3压缩模块流程图定时关机模块流程图如图4-4:图4-4定时关机程序流程图4.2 系统需要的shell命令说明本系统的需要用到的SheIl命令如下3T5:1.解压缩命令:.lar包解包:tar-xvfFile_Name.tar打包:tar-cvfFile_Name.tarDir_Name(注:tar是打包,不是压缩!)gz包解压1:gunzipFile_Name.gz解压2:gzip-dFile_Name.gz压缩:gzipFileName.tar.gz和.t
34、gz解压:tarzxvfFile_Name.tar.gz压缩:tarzcvfFile_Name.targzDir_Name(3) .bz2包解压1:bzi2-dFile_Name.bz2解压2:bunzip2File_Name.bz2压缩:bzip2-zFile_Name.tar.bz2解压:tarjxvfFile_Name.tar:bz2压缩:tarjcvfFile_Name.tar:bz2Dir_Name(4) .bz包解压1:bzip2-dFile_Name.bz解压2:bunzip2File_Name.bz压缩:未知.tar.bz解压:tarjxvfFile_Name.tar.bz压缩
35、:未知(5) .Z包解压:uncompressFile_Name.Z压缩:compressFile_Name.tar.Z解压:tarZxvfFile_Name.tar.Z压缩:tarZcvfFile_Name.tar.ZDir_Name(6) .zip包解压:UnZiPFile_Name.zip压缩:zipFile_Name.zipDir_Name.rar解压:raraFile_Name.rar压缩:rareFile_Name.rar”等几种类型来进本项目中,选择实现LinUX常用的.tar,V4.gz,Vt.bz行解压/压缩,或者打包的操作。2.关机shell命令:利用Shutdown命令实
36、现自动关机,如下:shutdown-t秒数-rkhncfF时间警告讯息4秒数:设定在切换至不同的runlevel之前,警告和删除二讯号之间的延迟时间(秒).-k:仅送出警告消息正文,但不是真的要shutdown.-r:shutdown之后重新启动.-h:shutdown之后关机.- n:不经过ini由shutdown指令本身来做关机动作.(不建议用)- f:重新启动时,跳过fsck指令,不检查文件系统.- F:重新启动时,强迫做fsck检查.- c:将已经正在shutdown的动作取消.在本项目中,使用的是shutdown-h选项。第5章系统的实现5.1 界面的代码实现基础接口的实现1.inu
37、x辅助管理的基础接口包括三个方面:(1)解压/压缩模块的BUgn的实现(2)定时关机的Button实现(3)帮助Button的实现在系统中,初始接口通过App类进行处理,解压/压缩和定时关机的Button分别实现了调用解压/压缩模块接口的功能,说明BUttOn使用了Tk的控件组PmW中的About控件,基于接口主类的master参数生成了一个说明接口,在其中包含了包括Copyright5Tel5Email等一系列信息。基础接口如图5-1所示:图5-1基础接口代码如下:classApp:省略初始化及接口制作部分#createthehelpwindowPmw.aboutversion(1.0,)P
38、mw.aboutcopyright(,CopyrightJason2007nA11rightsreserved)Pmw.aboutcontact(,Formoreinformationaboutthisapplicationcontactzn,+,Tel:13630596776nemaikzhangjunyao5518)Selfabout=Pmw.AboutDialog(master,applicationname=,Aboutthissoftware1)self.about.withdraw)# 弹出输入接口的制作defauto(self):Wdw=ToplevelOwindows.appe
39、nd(wdw)self.time=Pmw.TimeCounter(wdwJabelpos=W,IabeLtext=lPleaseenterthetime(HH:MM:SS),min=00:00:00,max=23:59:59)self.time.pack(padx=20,pady=6,side=TOP)# 关闭窗口defcloseWindow(win):win.destroy()ifwininwindows:windows.remove(win)ifnotwindows:root.quit)windows.append(wdw)# 显示说明窗口defhelp(self):self.about.
40、show)代码说明:首先由于Python语言是缩进式的语言,因此并没有出现像C或者C+一样的大括号一样的格式,另外,在本段代码中,两次利用了PmW的控件,分别是说明控件PmW.About和PmW.TimeCounter控件,前者实现说明功能,后者生成输入时间的窗口如图5-2,在后面的代码中进行时间处理。-xAAAjPleaseenterthetine(HH:MM:SS)防叵访j图5-2输入时间接口5.1.2解压/压缩接口的实现解压/压缩的接口主要基于控件Diak)g,通过它进行接口生成和操作,其中还有一些细节问题和解面调用的生成过程,这里需要进行一些说明:在基础界面上撼下UNZIP按钮,即可以
41、得到解压缩的界面,要求输入一个文件的路径名称,如图5-3所示:图5-3解压缩输入界面在这个界面基础上,可以输入文件路径,或者据下“Browse.,即弹出文件选择的界面,这个界面的生成是调用了Python提供的Dialog库中的一个IkFileDialog,代码如下:importtkFileDialogfilename=tkFileDialog.askopenfilename(titIe=open,)在上段代码中,askopenfilename方法返回一个值,即打开的文件的名称,其默认路径是当前打开文件的路径(当然也可以自己设置默认路径),界面效果如图5-4所示:oprXDirectory:mnthdalpythonra,-回国的国回国 spl self.max:yalue=self.maxifvalue=0;pvalue=int(float(value)float(self.max)*l00.0)else:value=Oself.canvas.itemconfig(self.label,text