您可以在几分钟内编写一段 Python脚本和让桌面拥有令人难以置信的相当漂亮的 GUI应用程序。这篇文章向您展示如何使用一 Python-著称的 GUI 库wxPython,来做到这一点的。向您的朋友和邻居介绍! 这篇文章是关于 wxPython,但 wxPython 实际是两件事物的组合体:Python 脚本语言和 GUI 功能的 wxWindows 库(关于 wxWindows 的介绍,请参阅 developerWorks上的 “细述 wxWindows” )。wxWindows 库是为了最大可移植性的 C/C++ 库,而抽取 GUI 功能。所以 wxWindows 应用程序与生俱来地可以运行在 Windows、带 X、KDE 或 Gnome 的 UNIX 或者 wxWindows 已移植到的平台上(很不幸,还不包括 Macintosh)。当然 Python, 作为脚本引擎,具有很强的移植性( 可以 运行在 Macintosh 上,但如果您想要编写桌面 GUI 代码,它是不行的)。把 wxWindows 与 Python 脚本语言组合起来,意味着:wxPython 应用程序不仅快速和易于编写,而且可以在不作任何更改情况下,运行在 Windows 或 UNIX 环境下。 您可能想,“但是那也是我有 Java 的原因,Java 也是可移植的。”没错,如果您曾试过在 Windows 上安装 Java 应用程序,您就可能认识到完全不是这么回事。Java 虚拟机是 大的 ,它并不总是以您所想的方式工作,最糟糕的是,恕我直言,Java 窗口不是真正意义上的窗口,所以 Java 虚拟机与主机系统之间的交互总是有点力不从心。 另一方面,Python 占有相对小的空间。wxPython 库的窗口是真正实在的本地窗口,它可以做本地窗口能做的任何事情,使您的 wxPython 程序如同窗口的程序一样。wxPython 的全部家当可以打包成一个易于安装的软件包。也许我是一个固执的人,但我发现做同样的事情,wxPython 要比 Java 容易得多。 但是您可能没有听说过桌面上的 Python,它是服务器端编程社区的一员,作为脚本语言这一块的新生儿(特别是与应用程序服务器框架连接,如 Zope)。现在人们正赶上 Python 的热潮。Python 的好处在于,不象其它脚本语言,它从一开始就是面向对象的语言。所以您不会忽视 Java 由于喜爱 Python 而失去品尝 OO 好处。 听起来很酷,不是吗?让我们看一些代码,您将会明白我所说的。为了易于讨论,我在示例中插入了一些行标签。它们不是代码中的一部分;这就是为什么它们以 蓝色斜体 表示。 清单 1. 一段很小的代码样本
我们一行行地看,这样容易明白该代码的工作原理。这就是为什么它是世界上最小的 wxPython 程序(我已经把所有无关的细节剔除了)。这段代码只能创建了一带有一个编辑字段的窗口。您可以在这个字段中编辑,但很明显没有办法保存。该应用程序看上去就象在 Windows 下一样(我在里面输入了一些东西):
第一行和第二行是很重要的,在后面会需要它们。事实上,在这个示例中, 不 需要 /注意这些行的结尾没有分号。如果您编写过 Perl 程序,那您要花费一点功夫来熟悉 Python 的输入习惯。但等等,它对您来说是陌生的。 在第三行,定义了第一个 Python 类 -- 在第四行,定义了初始化方法, 到 现在为止,如果您编写过 C/C++,您一定奇怪为什么没有花括号。是很奇怪,Python 把缩进当作重要的句法。任何有子语句的语句以冒号结束,所有该行下的缩进行都属于以该冒号终止的语句。当缩进回复到原来的缩进时,这一块就完成了。更为奇 怪的是,这种安排实际上很好用,刚开始编程的程序员发现,这要比用花括号来说明结构要容易。幸运地是,这还意味着更少的击键次数,所以老程序员也能接受 它。 所以缩进的第 5、6 和 7 行属于在第 4 行中定义的方法。它们分别调用 wxFrame 父类的初始化例程(实际进行设置一个窗口的所有繁重工作),定义一个控件以适合新的主窗口,以及确保窗口是可见的。 wxPython 会重新调整父窗口的大小,除非专门告诉不要这样做。如果您曾编写过 任何 Microsoft Windows 代码,通过重新调整控件大小来匹配父窗口,那您会很快喜欢 wxPython。第 6 行的实际意义是完成一个如同 Notepad 一样的编辑器。这还不算什么。用 C/C++ 代码,则需要 更多 才能实现,不是吗?记住 -- 我们在这做的不是固定大小的对话框,它是真正在窗口主体中和可调整大小的带编辑器的 Windows- 化应用程序。 让我们继续。第 8 行定义了由 最后定义完类,创建应用程序对象,开始运行它的主循环。如果您做过任何 C/C++ Windows 编程,会认识到 MainLoop 方法是所有 Windows 程序的正常事件循环。这个启动代码的风格确实与脚本语言保持一致。记住,Python 解释器逐行读取代码,并边读边执行它。所以,一旦定义了类,我们只需在脚本中调用它。 这就是 它 。在这十五行代码中,实现了一个简单的文本编辑器,这段代码无需修改就可以在 Windows 或 UNIX 上运行。而且很容易添加更多特性,这太好了,在下一节将要讲述这些。
您可能认为,“解释型语言,效率不高。对于较大的程序,执行起来会很慢。”在一定程度上,这是正确的。事实上,任何影响性能的代码通常用 C/C++ 重新实现,并链接到 Python 解释器,这是很容易做的。所以 Python 通常用作绑定功能性模块和 GUI 显示(或应用程序服务器功能,如果您需要该功能)的粘合剂。但作为粘合剂,Python 是非常有效的。您可以在很短的时间内用 Python 实现真正的程序,由于其面向对象和格式方面有限的创造机会,它们通常可使用好几个星期。 而且,如果您怀疑使用解释型语言将大程序结合在一起的想法,那您不妨考虑一下 Microsoft Word 的早期版本是如何实现的。至少最近的 Windows 的 Word 版本 6.0,其 Word Basic 函数事实上只是编译过的代码;而 GUI 是由 pcode 解释性型语言构建的。(MS Word 6.0 是用 Word Basic 编写的,很有效,这是一个很聪明的设计,其原因之一 -- 它是最早用内置解释器的桌面程序。) 这里您所损失的是在性能方面(实际上,很少),但您可以很容易地通过简化实现和(更重要)简化定制来弥补。事实上,通过包含 Python 您已经自动包括了易于展现给您的用户的脚本语言,同时,对于编程的新手来说,该语言也证明了其易于学习。如果钻研它,可以用比您现在花费的要少的功夫创作出世界级的软件。因为,如果该语言能为 Microsoft 服务,那么,它也能为您服务!
无论如何,言归正传,这里向您展示一个程序,它事实上做一些值得做的事情。这个程序让您创建一个称之为项目的文本文件列表。您可以编辑和保存它们。更重要的是,您可以很容易地看到如何进一步增强基本组织器。我使用一个扩展版本为 CVS(标准开放源码版本控制系统)的前端。 这里是代码 。我们(仍然相当小)的应用程序从 15 行扩展到大约 300行,但它现在能实现许多事情。
清单 2 中我没有列出行号,因为很明显无论如何您都要月阅读该代码。我只是一般性地讲述一下这个程序是做什么以及它所用的 Python 与 wxPython 的功能是什么。有关Python 更详细说明,请您本地的书店找 Mark Lutz 写的 O'Reilly 这本书,或者阅读随 Python(Guido Rossum 著,Python 的实际作者)一起的文档。 第一个有趣的事是这个应用程序处理命令行。列表 接下来,为了在调试时易于使用,定义一个 MsgBox 函数。注意,用于函数声明和类方法声明的语法正好相同。唯一的区别是类方法需要带参数 真正有趣的是在更为复杂的 一旦有构造了的窗口,接下来我们就可以来看程序的实际代码。首先,在方法 载入/保存函数的另一个有趣的特性是他们会碰到由坏文件调用产生的例外( 新代码剩下的问题是事件处理程序,用于处理在程序执行过程中所碰到的。我再次让程序自己来说明大部分。注意,使用一般的对话框(
让我说,wxWindows API 的文档处于……开发中。这个平台最大的弱点是缺乏好的文档,我正在积极地改变这种状况。下半年情况会有所好转。同时,Python 本身有一些好的书籍,其中 Python 的在线文档就不差。对于 wxWindows,C++ 的文档很好。有时,在 Python 框架中,如何使这些文档合理些,是相当神秘的。在那里,有一些具体的 Python 注释,但在很多情况下,您会发现必须要读随 wxPython 一起的演示代码,或者,必须向邮件列表中的专家询问您的问题。幸运地是,这些专家是“有迹可寻”的。 一旦通过了最初的学习曲线,您会觉得这要比在 Windows API 中做同样的任务要简单的多。相信我,这份材料是很好的。
| |||||||||||||||||||||||||||
相关推荐
Python界面开发:wxPython入门指南
首先,我们导入了wx模块。在MyFrame类的构造函数中,我们创建了一个大小为300x200的窗口,并在窗口中创建了一个面板和一个按钮。wxPython是一个用于Python的开源GUI工具包,它基于C++编写的wxWidgets库,提供了丰富的界面组件和强大的功能,使得开发者可以轻松创建跨平台的图形用户界面应用程序。下面的示例展示了如何创建一个简单的wxPython应用程序,并在窗口中显示一个按钮。以下是一个示例代码,展示了如何创建一个包含文本框和按钮的窗口,并在按钮点击时显示文本框中输入的内容。
Python3(Windows)之wxPython学习与使用
Python3 WxPython使用及GUI线程通信
Python基础
这篇文章是关于 wxPython,但 wxPython 实际是两件事物的组合体:Python 脚本语言和 GUI 功能的 wxWindows 库(关于 wxWindows 的介绍,请参阅 developerWorks上的 “细述 wxWindows” )。wxWindows 库是为了最大可移植性的 C/C++ 库,而抽取 GUI 功能。所以 wxWindows 应
wxPython入门中文版 (Getting Started with wxPython)
本文翻译自http://wiki.wxpython.org/Getting%20Started 首先声明:本人还是个菜鸟,翻译只是为了学习,就当作记笔记了。水平有限,错误和疏漏在所难免,希望各路高手能够给予指导。而且简单查了一下,好像中文世界目前还没有完整的翻译 Getting Started with wxPython 的。wxPython入门第一个应用程序:”Hello, World!”按惯例
wxpython使用简介_wxPython 教程(一) 简介
应用(application)是用来执行特定任务或一组任务的电脑程序。网页浏览器、媒体播放器、文字处理程序都是典型的应用样例。不同应用可以划分至四种不同的应用领域:在线商店应用、wiki、微博等都是受欢迎的网页(web)应用,我们通过网页浏览器可以访问它们。桌面(Desktop)应用的例子则包括 Maya、Opera、Open Office或 Winamp。企业级(Enterprise)应用则指复...
Python中的wxPython入门
wxPython是一个基于Python的开源GUI工具包,用于创建跨平台的桌面应用程序。它是wxWidgets库的Python绑定。本文将介绍如何在Python中使用wxPython来创建一个简单的桌面应用程序。本篇文章介绍了如何在Python中使用wxPython来创建一个简单的桌面应用程序。我们学习了如何创建窗口、面板和按钮,并在按钮点击时显示一个对话框。读者可以根据自己的需求进一步学习和探索wxPython的各种功能和特性,以开发更复杂和功能丰富的桌面应用程序。
wxpython和tkinter哪个好_wxPython和Tkinter对比入门
wxPython入门hello worldimport wxclass ButtonFrame(wx.Frame):def __init__(self):wx.Frame.__init__(self, None, -1, '窗口标题', size=(300, 200))panel = wx.Panel(self, -1)self.btnOk = wx.Button(panel, 1, "OK", ...
wxpython中文教程入门_wxPython中文教程入门实例
wxPython中文教程入门实例wx.Window 是一个基类,许多构件从它继承。包括 wx.Frame 构件。可以在所有的子类中使用 wx.Window 的方法。wxPython的几种方法:* SetTitle( string title ) ―― 设置窗口标题。只可用于框架和对话框。* SetToolTip( wx.ToolTip tip ) ―― 为窗口添加提示。* SetSize( wx....
wxpython入门_wxPython简单入门
wxPython简介wxPython 是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能键全的 GUI 用户界面。 wxPython 是作为优秀的跨平台 GUI 库wxWidgets 的 Python 封装和 Python 模块的方式提供给用户的。 就如同Python和wxWidgets一样,wxPython也是一款开源软件,并且具有非常优秀...
Wxpython入门
Wxpython入门 api文档以及中文教程: https://pan.baidu.com/s/1TDTgHg9Mwc74ODQy68YnlQ 提取码:354n 入门示例 import wx#1 class App(wx.App):#2 def OnInit(self):#3 frame=wx.Frame(parent=None,title =...
wxpython是什么_wxPython简单入门
wxPython简介wxPython 是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能键全的 GUI 用户界面。 wxPython 是作为优秀的跨平台 GUI 库 wxWidgets的 Python 封装和 Python 模块的方式提供给用户的。就如同Python和wxWidgets一样,wxPython也是一款开源软件,并且具有非常优秀的跨...
wxPython入门第一篇环境搭建
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_35028262/article/details/102788927 wxPython入门第一篇环境搭建 介绍: wxPython是Python语言的一套优秀的GUI图形库,允许Python程序员很方便的创建完整的、功能健全的GUI...
wxpython入门_wxpython笔记:Wxpython入门
#!/usr/bin/envpython'''静态文本、可控文本、对话框、GetApp()'''importwx,timeID_EXIT=200ID_ABOUT=201class Frame(wx.Frame): #2wx.Frame子类def __init__(self,parent = None,id = -1,title ='wxPython!'):wx.Frame.__init__(s...
wxPython之Boa IDE入门教程
最近开发一款小软件,找到了wxPython这个东东,感觉还不错就是Sizer神马的用起来有点费劲,主要原因是刚开始不了解各个参数的意义,于是找到了Boa这个神器,起码短期内解决了我的问题。总体而言,Boa可以作为wxPython入门的利器之一。 首先,Boa更适合运行与Windows环境下,在linux下运行不是很稳定(个人感觉),笔者使用的是Windows xp,Boa使用的是
wxpython入门(1)
博主以前学习过python官方御用的tkinter,不过时间挺久了。今天来尝试一点新东西,wxpython。 什么是wxPython? wxPython是一个用于Python编程语言的跨平台GUI工具包。它允许Python程序员简单轻松地创建具有强大,高功能的图形用户界面的程序。它被实现为一组Python扩展模块,它们包含流行的wxWidgets跨平台库的GUI组件,该库是用C ++编写的。...
wxpython开发教程_wxpython入门
简介wxPython是Python语言的一套优秀的GUI图形库。允许Python程序员很方便的创建完整的、功能键全的GUI用户界面。 wxPython是作为优秀的跨平台GUI库wxWidgets的Python封装和Python模块的方式提供给用户的。使用wxPython创建GUI需要以下五个步骤:导入必须的wxPython包子类化wxPython应用程序类定义一个应用程序的初始化方法创建一个应用程...
243




被折叠的 条评论
为什么被折叠?



