【VC++开源代码栏目提醒】:网学会员--在 VC++开源代码编辑为广大网友搜集整理了:Python界面程序开发应用技术 - 软件工程绩等信息,祝愿广大网友取得需要的信息,参考学习。
…”’ f’。
~_… 2 0 1 0.1 0(下旬刊) Python界面程序开发应用技术 曾浩尚维来 曰 J口 I口J:止不 (南京化工职业技术学院信息系 江苏·南京210048) 中图分类号:TP393 文献标识码:A 文章编号:1672—7894(2010)30-087—03 至对那些不是最初接触和开发原始项目的程序员都能具有 零其 这样的强烈感觉。
虽然某些程序员反对在Python
代码中大量使用空格, 。
禳’1t嗽囊盛 不过,几乎人人都承认Python
代码的可读性远胜于C或者 Java,后两者都采用了专门的字符标记
代码块结构、循环、函1 python界面开发综述 数以及其他编程结构的开始和结束。
Python界面除了标准库以外,还有许多其他高质量的 提倡Python的人还宣称,采用这些字符可能会产生显库,如wxPython、Twisted和Python图形库等等,数不胜数。
著的编程风格差异,使得那些负责维护
代码的人遭遇
代码 Python界面包括图形用户界面、文件处理、多媒体、正则 可读性方面的困难。
Python明晰的语法使其成为一种学习表达式、文档生成、单元测试、线程、数据库、网络通讯、网页 曲线平和的编程语言。
有经验的程序员甚至可能在一天之浏览器、CGI、FrP、电子邮件、XML、HTML、WAV文件、密码 内就掌握P!IrtIION的基础知识。
至多不过一周作用就可以上系统。
手,而编程语言的专家则肯定会比他掌握C、C++、Java甚至 Python的年岁比Java老,到现在,这种语言已经发展出 Perl要快很多。
了规模,虽然不大但仍然在成长中。
Python整合了各种模块、 Python界面因其语法的明晰而获得的最大好处或许该异常、动态输入、高级动态数据类型和类等概念。
它同多种 算是开发时间的大大降低了。
系统函数和系统库乃至各类Windows系统建立了接口。
业界开发经验告诉我们:开发时间因为Python的采用 如果说Python并不一定能渗透到任何计算领域的话, 而大大节约,同时却并没有给软件性能带来任何负面影响。
至少在企业开发这一行它的处境就是这样。
在企业开发领 就软件开发业务而言,快速地开发出新产品比开发出性能域,Python还被当成一种可以替换Perl的脚本语言。
本文就 惊人的软件产品要重要得多,开发时间相比软件的优化要对Python界面构造企业级应用这一问题做简短阐述。
贵得多(以每小时计算)。
Python语言的某些特点使其成为企业应用的合理选择: 对开发速度采用何种评价标准一直是个很难确定的问 ◆免费可用(像Perl一样,Python也是开放源
代码软 题,不过通常情况下,普遍认为开发Python应用程序的速度件)。
大约是用Java开发同类应用程序速度的10倍。
要是相比 ◆稳定(Python目前已发布到2。
2版,我刚才已经提到, C,c++节约的时间就更多了。
它的年头比Java还老)。
Python最大的特点就在于它的快速开发功能。
作为一 ◆良好地支持对象、模块和其他可重用机制。
种胶水型语言,Python几乎可以渗透在我们编程过程中的 ◆采用c和Java语言的集成方便性和扩展性。
各个领域。
这里简单介绍一下用Python进行gui开发的一 以上这些特性非常有利于Python在企业中的应用。
不 些选择。
过,Python还具有一些适合企业应用但却不太令人注意的其 (1)Tkinter他合理因素。
IT部分通常要完成的任务相当繁重但支撑这 Tkinter似乎是与tcl语言同时发展起来的一种界面库。
些工作的资源却很少,这已经成为公开的秘密。
任何承诺提 Tkinter是Python配备的标准gIli库,也是opensource的产高编码效率、降低软件总成本的rr解决方案都应该进行周 物。
Tkinter可用于windows/linux/unix/macintosh操作系统,而密的考虑。
且显示风格是本地化的。
Tkinter用起来非常简单,Python自 Python所具有的一个显著优势就是可以在企业的软件 带的IDLE就是采用它写的。
除此外,Tkinter的扩展集Pmw创建和维护阶段节约大量资金,而这两个阶段的软件成本 和1k功能上都要相对它强大,但Tkinter却是最基本的。
我占到了软件整个生命周期中总成本的50%到95%。
Pyt}lon 认为,在用Python做鲥开发,Tkinter是最基本的知识,所清晰可读的语法使得软件
代码具有异乎寻常的易读性,甚 以这个环节是必须要学习的。
你或许在以后的开发中并不 升缸毛i‘ 87 万方数据 ’It”…”‘’。
#‘“· f讳 0.1 0(下旬刊) ~{t·、…}tj矗;….. j.,jd常用Tkinter,但是一些小型的应用上面,它还是很有用的, Python模块,但同样增加了对.net库的支持。
你也可以理而且开发速度也很快。
解为它是另一个Python开发环境。
你可以非常方便地使 (2)WxPython 用啪on语法进行.net应用的开发,这一点听起来真的 WxWidgets应该算是近几年比较流行的GUI跨平台开 挺有意思。
发技术了。
WxWidgets有不同的版本应用,有c++的,也有 总之,介绍了这么多。
我个人意见是,如果你是java用basic的,现在在—t}I彻上面也有较好的移植。
WxPython的 户,那么你就用jython吧,除了可以享受Python的模块功能功能上面要强于Tkinter,它提供了超过200个类,面向对象 及语法外,你可以找到许多java的影子;in果你是.net用户,的编程风格,设计的框架类似于MFC。
对于大型GUI应用上 那么就用iron Python吧;如果你对VbuM C++很熟悉,那么面,WxPython还是具有很强的优势的。
boa constructor可以帮 你可以使用MFC,WPY或是wx脚hon,当然我更建议使用助我们快速可视地构建WxWidgets界面。
WxPydlon了。
当然,我认为对于Tkinter是每一个原来搞C (3)PyQT 的人都应该了解和学习的GUI库,因为它很轻便,小型应用 Qt同样是一种
开源的GUI库,Qt的类库有300多个, 就可以使用它来搞定,而对于较大型应用可以采用PyGtk,函数有5700多个。
Qt同样适合于大型应用,由它自带的qt PyQt,WxPytllon或PythonCard来搞定,这样的话.既可以注designer可以让我们轻松来构建界面元素。
重知识的衔接性,也可以快速进行软体的开发了。
(4)pyGtk 下面具体介绍一下两个具体的界面库: Gtk是linux下Gnome的核心开发库,功能上面非常齐 2 WxPython全。
值得说明的是,在Windows平台下gtI【的显示风格并不 WxPython是Python编程语言的一个GUI工具箱。
它使是特别本地化。
不过它白带的glade界面设计器还是可以帮 得P灿on程序员能够轻松地创建功能强大的图形用户界面你省不少事的。
程序。
它是Pydlon语言对流行的WxWidgets跨平台GUI工 (5)Jython 具库的绑定。
而wxWidgets是用C++语言写成的。
和Pytho. 尝试过用Python访问Java类库吗,那么就用Jython吧。
语言与WxWidgets GUI工具库一样.WxPython是
开源软件。
Jython其实可以认为是另外一个Python开发环境,基于Java 这意味着任何人都可以免费地使用它并且可以查看和修改的,但是大多数的CPython调用jython下还是可以的。
你可 它的源
代码,或者贡献补丁、增加功能。
WxPython是跨平台以在Jython环境下像使用Java一样来通过Pylon的语法来 的。
这意味着同一个程序可以不经修改地在多种平台上运调用Java语言,真的很酷。
行。
现今支持的平台有:32位微软Windows操作系统、大多 (6)MFC 数Unix或类Unix系统、苹果Mac OS X。
由于使用Python作 Windows Pywin32允许你像VC一样的形式来使用 为编程语言,WxPython编写简单、易于理解。
PYTHON开发win32应用。
代码风格可以类似win32 sdk,也 基本的WxPython程序说明了开发任一WxPython程序可以类似MFC,由你选择。
所必需的五个基本步骤: (7)PythonCard (1)导入必需的WxPython包 PythonCard其实是对WxPython的再封装,不过封装得 (2)子类化WxPython应用程序类更加简单,使用起来觉得比WxPython更直观,也更简单 (3)定义一个应用程序的初始化方法化了。
(4)创建一个应用程序类的实例 (8)Dabo (5)进入这个应用程序的主事件循环 仍是一个基于WxPython的再封装库,没用过,不太了 对于初学者或者对程序结构要求不多的用户来说,使解。
它提供数据库访问,商业逻辑以及用户界面。
用Boa Constructor这样的基于WxPython的开发平台,可以 (9)AnyGui 轻而易举地开发出优秀的WxPython程序。
通过底层的api来访问其他工具集,像Tkinter,Wx- 3 TkinterPython和口t具体也没怎么用过。
Tkinter是一个Python模块,是一个调用’rcVrk的接口。
(10)WPY 它是一个跨平台的脚本图形界面接口。
Tkinter不是唯一的 MFC风格的Gui开发库,
代码风格也类似于MFC,尽管 Python图形编程接口,却是其中比较流行的—个。
最大的特如此,你依旧可以使用这个库来开发GUI应用,而不用担心 点是跨平台,缺点是性能不太好,执行速度慢。
平台移植的问题。
它同样是一个跨平台的库。
一般使用Tkinter的方法是: (I I)lronPython From Tkinter import。
如果你要想开发.net下面的应用的话,那么lmnPython 或者:import Tkinter就是你的选择,与jylhon有点类似,它同样支持标准的 两者的区别我们前面讲模块的时候已经说过了。
88 |t缸‘i‘ 万方数据’2 20 0…01.1 0 :….,,。
“。
“.,:、羽黪鋈圈 c下挚弹。
k,三二二=二三二=二三五盖三三玉翟雪霉圈 (下旬刊) .。
w,蕊越涵:黼潞Sb斌b蕊曲幽融自瀚滏黼黼蠲赫酾醯鼢鲻滋龋蝴磷黼醐鞠国潞豳妇搿豳豳豳幽圈幽盈幽龋豳圈—■■■● 先看一下GUI程序的开发,熟悉MFC的朋友应该不会 Pack使用很简单,就是w.pack(option)。
常用的option陌生。
在GUI程序中,我们会有一个顶层窗口,在这个顶层 有:窗口上可以包括所有的小窗口对象,像标签、按钮、列表框 Side表示把组件放到哪一边,TOP(上),BOTTOM(下)。
等等,也就是说顶层窗口是我们放置其他窗口或者控件的 LEVI”,RIGHT。
地方。
我们用下面的语句可以创建一个顶层窗口,或者叫根 Padx和pady表示pared的每一个边和组件的预留空窗口: 间。
Import Tkinter Ipadx和ipady表示组件的每一个边和它包含的内容之 top 2 Tkinter。
Tk0 间的顶留空间。
(如果前面是用的from Tkinter import+,那么Tk0就够 Anchor表示在parcel放置组件的方式,缺省时CEN—了) TEB。
然后我们就可以在这个根窗口上设置“组件”了。
通常 (2)朗d这些组件会有一些相应的行为,比如鼠标点击、按下等等。
使用方法和pack类似。
这些称为事件,而程序会根据这些时间采取相应的反应。
称 (3)place为回调。
这个过程称为事件驱动。
精确地摆放一个组件的位置,一般不太用。
所有的创建和放置完毕后.就立刻进入主循环,
代码如 看一下
代码:下: from Tkinter import‘#引入模块 Tkinter.mainloop() #resize函数是用来改变文字大小的,当进度条改变时 Tk的组件有很多,不可能一一介绍,现在通过一个小例 调用。
子看看其中一个标签的使用。
def resize(ev=None): >>>import Tkinter label.config(font=‘Helvetica-%d bold’%scale.get0) >>>top 2 Tkinter.Tk0 #eonfig函数就是通过设置组件的参数来改变组件的, >>>label=Tkinter.Label(top,text=’Hello World’) 这里改变的是font字体大小 >>>label.p8ckO top=Tk0#主窗口 >>>Tkinter.mainloop0 top.geometry(’600x4009#设置了主窗口的初始大小 下面解释一下: 6I)0删 第一行。
是导入模块。
label=Label(top,text--‘Helo world!’,font=’Helvetica-12 第二行。
创建主窗口。
bold’)#设置标签字体的初始大小。
第三行,创建Label标签,它是用Tkinter的一个方法L丑_ label.pack(fill=Y,expand=1)bel来实现的.关于Label的帮助可以help一下。
#sa山创建进度条,设置 第四行,pack()是用来管理和显示组件的,它的参数我 scale=Scale(top,from_=10,to=40,orient-HORIz0N1AL们以后再说。
command--r酷ize) 第五行,mainloop()进入主循环。
剩下的事就是系统的 scale.set(12)#设置起始位置了。
scale.paek(fiII=X,expand=1) 下面看看组件的配置。
.11【中的每一个组件都有很多 quit=Button(top,text=’QUIT’,conunand=top.quiLactivefore-option,通过改变这些option可以改变组件的外观.比如显示 ground=’white’,的内容、颜色、大小、位置、事件处理函数等。
activebackground=’redl 比如:w--label(root,text:’hello’舾’red’) quit.pack0 创建一个W,第一个参数是它的master widget,是root, mainloop0所有参数都是默认的。
我们可以用默认的来创建,W.cget(option)得到一个option的值。
同样可以用W.eonfig(option=”) 参考文献来设置某个参数的值。
【l】Magnus Lie Hefland.Python基础教程【M】.司维’译.北京:人民邮电 Tkinter的几何管理器: 出版社,2010.7. 熟悉GUI编程的人知道,放好每个组件是很繁琐的,不 【21 Mark Lutz.Python学习手册【M】.南京:机械工业出版社,2006.仅要调整自身大小,还要整合其他组件的相对位置。
rI’l【提供 【3J(美)马特利.P”h∞Cookbook(第2版)中文版【M】.高铁军,译.北了三个管理器来帮助我们:Pack、Grid、Place。
京:人民邮电出版社,2010(5). (1)pack .
上一篇:
《C 应用程序性能优化 第六章内存池》学习和理解
下一篇:
法律专业开题报告范文