wxPython+Boa Constructor环境配置
配置之前先完成eclipse + Pydev的配置环境。详见http://www.cnblogs.com/dflower/archive/2010/05/13/1734522.html
1. 安装 wxPython 2.8
下载地址为http://sourceforge.net/projects/wxpython/files/,我用的版本是wxPython2.8-win32-unicode-2.8.10.1-py26.exe
建议下载 Unicode 的,用 Ansi 版的话,组件标题不能写 Unicode 字符,代码包含 Unicode 字符也会出错。安装时注意,安装路径中不能有空格。
2. 下载 Boa Constructor
Python 拥有非常多的开发环境,也就是 IDE。但是到现在为止,能完全支持可视开发的只有 Boa Constructor。使用它可以像使用 Delphi 那样,直接拖出控件进行快速的开发。
下载地址为http://sourceforge.net/projects/boa-constructor/files/,目前最高版本是0.6.1
注意,Boa Constructor 的安装路径也不能有空格。
3.配置 Boa Constructor
打开 Boa Constructor,如果你是中文的系统,IDE 的语言会变成中文,你必须把它修改成英文的,在 工具->语言设置菜单中将它换成英文。如果使用中文的 IDE,打开,保存文件时会发生错误
点击 Tools->Python Interpreter Chooser,设置 Python.exe 的所在目录。
关闭 Boa Constructor并重新启动它,配置即告完成。
?
用Boa Constructor可以很方便的设计界面,具体的入门教程在最后附上。
但是在Boa里直接写代码还是比较痛苦的,可以先在eclipse里面新建一个工程,然后用Boa constructor设计好GUI保存到工程文件夹里面,再到eclipse里面刷新一下就能载入设计好的py文件,然后就可以在eclipse里面编程和调试了。
?
--------------------你飘啊飘我摇啊摇无根的分隔线-------------------------------------------------------
?
附:一个Boa Constructor的入门教程
1、先创建一个wx.App,这样会自动创建wx.Frame,Boa?constructor就是这样设置的,我也推荐这样,先有一个app(没有Frame),然后调用其他Frame。创建方法有两种:在最上方的 Palette中的New面板下面选择wx.app;或者在Editor中选择File菜单下面的New的wx.app。?
??? 我们可以在Editor中看到在Shell和Explorer旁边出来一个*(App1)*和*(Frame1)*。出现*表示还没有保存。这两项下面都有子面板Source,嗯,就是代码。好了,我们先保存一下。通过File-Save保存也可以,点击那个软盘图标保存也可以。?
2、然后我们可以在Frame中添加Panel(面板)或者Button(按钮)或者TextCtrl(文本控制)。Frame是框架的意思,有框架之后就可以添加任何东西进去。最先添加进去的是一个“底板”,通常会是Panel或者Windows之类的。这种“底板”添加进去之后就会自动填充满 Frame。?
??? 点击Frame,然后点击Editor中的Frame Desinger图标(快捷键是F12),看见深灰色的小格子,上面还有一个标题栏对不对?这个就是Frame!现在我们就可以往其中拖拽东西了。所有可以拖拽进去的东西都在上方的Palette中,有很多的哦,比如Containers/Layout(容器/布局)、Basic Controls(基本控件)、Buttons(按钮)、List Controls(列表控件)等等等等。?
??? 我们在Containers/Layout中选择第一个图标wx.Panel,左键点一下,嗯,变成按下状态了。然后再Frame中点一下,Yeah~添加进去了。为什么没充满整个Frame呢?别急,先点右上角的×关掉这个Frame,再点开这个Frame(F12忘了吗?),是不是填充满了呢?都是浅灰色的了。?
(关掉重新再开——这个技巧很重要,因为只有这样Boa?Constructor才能识别出来。以后我们设置属性、调整大小等等操作也最好这样“关掉重新再开”一下)?
??? 我们把鼠标放到Frame上,能看到panel1,放到标题栏上能看到Frame1(或者你保存Frame的名字)。这个名字也可以改,左键点击,然后看看Inspector面板中的Constr属性页,Name一项就是名字。左键点击就可以修改,千万千万别改成中文、法文、日文、韩文,只能是英文!改好之后点击上面的刷新图标(Recreate selection)。也可以改位置,在Position下面修改;也也可以改大小,在Size下面修改;也也也可以改风格,在Style下面修改。?
??? (其实这还是需要wxPython方面的知识的,看看wxPython in action这本书吧,可以还是英文的)?
??? Inspector下面的Props属性页下面可以该更多的东西,比如背景颜色(BackgroundColour)、提示文字(ToolTipString)、字体(Font)等等。很有用的Sizer(大小管理器)也是在这个下面设置。?
?? 你发没发现很多关于文字设置前面都有一个u,这是unicode的缘故。也是我们安装wxPython-unicode版本的缘故,你可以在某些提示文字之类的地方输入中文,系统会自动转换成unicdoe码。?
?? (关于unicode真是很复杂!!我曾经在windows下开发,没什么问题,但是放到Linux下,傻眼!所以如果你要做跨平台软件,好好了解一下unicode)?
??? Inspector下面的Evts属性页就是“事件”。所有的可能的相关事件都在这下面。鼠标事件(MouseEvent)、KeyEvent(键盘事件)等等。通过这些事件,你可以调用其他函数,并完成其他功能(比如绘图、弹出提示框、跳转到其他页面等等等等)。“事件”对于wxPython很重要,因为它是“事件驱动型GUI”(这部分你不理解就不理解吧,呵呵,记住就行了,然后在开发中慢慢理解)。?
?? Inspector下面的Objs属性页给出一个树状结构,告诉你什么包含什么,你可以选择其中的一个(比如Frame1),然后查看它对应的Constr/Props/Evts。?
3、下面让我们来添加一个按钮。点击最上面Palette中的Buttons,选择第一个图标wx.Button,按下,然后在Frame中的Panel中按下,看到Button1了吧。?
??? 然后我们可以修改其对应的各种属性。包括大小、位置、显示文字、样式等等。在什么地方改?刚才不是告诉你了吗?在左侧的Inspector下面改。?
??? 为什么Boa?Constructor大家都感觉很容易呢?因为有些东西是可以直接拖拽所见即所得的。比如你可以试着直接用鼠标改变按钮的大小和位置?
??? 其他控件也基本类似,你可以试着添加各种各样的控件进去。其实Boa?Constructor不包括所有wxPython中的控件,但是它包括了基本、普通、平常、我们大家会用到的控件。所以我们可以通过Boa?Constructor来入门wxPython。?
4、让我们添加一个事件(Event)。还记得我说过“事件驱动型GUI”吗?让我们“驱动”一下我们的程序吧。?
??? 点击选中Button,在左侧的Inspector的Evts下面单击ButtonEvent,右侧出现wx.EVT_BUTTON,双击之,在下面出现一个wx.EVT_BUTTON——OnButton1Button。好了,点击上面的“对号”。?
?? 保存源文件。在源文件(Source面板下面)的最下方你能看到形如:???
def OnButton1Button(self, event):?
??????? event.Skip()?
这样的东东。在event.Skip()前面添加你想要的代码吧,比如:print u'haha',或者弹出一个提示面板:???????????
dlg = wx.MessageDialog(self,?? u'yes',?
?????????????????????????????????? u'You got it~',?
?????????????????????????????????? wx.OK | wx.ICON_INFORMATION?
?????????????????????????????????? )?
dlg.ShowModal()?
dlg.Destroy()?
或者任何代码。?
(event.skip()表示将事件向下传递,你就别删它就行了)?
(我上面的弹出窗口代码其实也可以用Boa?Constructor来创建一个wx.Dialog然后再调用之,但是我没有这么做,因为我觉得这样更方便。你以后也会发现更方便的一些东西,然后你会逐渐的跳出Boa?Constructor了…………当然你跳不出wxPython的怀抱,呵呵)?
5、好了,万事大吉了!点击Editor页面下的Run Applictaion图标或者按下F9吧。运行下你的程序。当然,你必须在app为所选页面时才能运行程序。因为app是程序,frame不是。?
6、接下来我们可以添加其他frame,添加其他控件,添加其他module(模块),下面的路你自己走吧……?
(我有个小建议,你试着去看一下Boa?constructor的英文帮助,没有害处)?
目前我发现的Boa?contructor会出现的问题:?
1、有时候Boa?constructor会挂掉,只能强行关闭。通常这种情况都是程序有错误所造成的。 这个不能怪Boa?constructor,你在IDLE中运行这些程序,也会假死。 有时候我也只能在命令行窗口中运行。?
2、Boa?constructor不能实时刷新,我们必须点击刷新或提交按钮才能看到改动。 是的,就是这样。所以不要试图一次添加所有你能想到的东西,试着分几次来添加。?
3、中文目录的问题。 源程序文件无法运行、保存、?
在一般情况下,某事物个体发生具有其特有属性的负面现象,且无法以科学的角度得到合理有效的解释。我们通常称此类现象为“人品问题”(RPWT)。
?????????????????????????????????????????????? ——摘自《辞海》第314页