zoukankan      html  css  js  c++  java
  • 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页

  • 相关阅读:
    python爬虫学习(7) —— 爬取你的AC代码
    python爬虫学习(6) —— 神器 Requests
    python爬虫学习(5) —— 扒一下codeforces题面
    python爬虫学习(4) —— 手刃「URP教务系统」
    听说你叫爬虫(3) —— 模拟登陆
    python爬虫学习(2) —— 爬一下ZOL壁纸
    python爬虫学习(1) —— 从urllib说起
    数据结构/ 串的模式匹配法 / kmp算法与next数组的构造
    ADWORLD web/PHP2
    ADWORLD web/upload1
  • 原文地址:https://www.cnblogs.com/dflower/p/1743115.html
Copyright © 2011-2022 走看看