zoukankan      html  css  js  c++  java
  • Ulipad框架分析(一)

    ulipad是一个limodou用python+wxPython编写的IDE,功能很强大,支持多种语言,自定义themes,内建python的shell等等,但是也有一些缺陷,比方说调试功能比较麻烦,代码风格也比较杂散,开发文档比较少,不容易进行二次开发,最新版本为4.0。有关ulipad的更多信息可以查看:

    http://hi.baidu.com/limodou/

    http://code.google.com/p/ulipad/

    ulipad采用mixin方法进行主要框架的搭建,然后逐渐将界面窗口,菜单等添加进行去,添加的方法非常类似wordpress的插件编写方式。所谓的mixin方式,与C++的多重继承类似,只是python有自己的多重继承方式,又是动态语言,容易绑定的关系,因此更加灵活些。

    ulipad的主要实现功能在modules和mixins两个文件夹下面,modules是主要框架实现功能,mixins目录下是各种功能的实现,整个结构不是特别清晰,未能够将界面与功能也区分开来。

    自然,整个技术核心是mixin,在modules/mixin.py中的Mixin类实现的,有一个类变量,__mixinname__,表示继承自Mixin子类名称,然后通过调用initmixin方法来将类中的信息添加到__mixins_funcs_time_set__和__mixinset__两个dict中,通过__mixinname__来区分不同的类,不明白,为什么ulipad不使用metaclass技术。这个类提供了基本的插件调用方法,callplugin_once,callplugin,execplugin_once以及execplugin四个方法。

    通过mixin.py中的setMixin和setPlugin方法,添加mixin方法和plugin方法。

    /*
    *
    * Copyright (c) 2011 Ubunoon.
    * All rights reserved.
    *
    * email: netubu#gmail.com replace '#' to '@'
    * http://www.cnblogs.com/ubunoon
    * 欢迎来邮件定制各类验证码识别,条码识别,图像处理等软件
    * 推荐不错的珍珠饰品,欢迎订购 * 宜臣珍珠(淡水好珍珠) */
  • 相关阅读:
    根据界面上的button增加、删除、重命名文件夹,名字是数据库下面某一表单的某一列的名字
    打包测试的过程记录
    java中return的作用
    UVA
    UVA
    UVA
    HDU
    HDU
    spring技术详解
    Java对象的生命周期与垃圾回收以及四种引用
  • 原文地址:https://www.cnblogs.com/ubunoon/p/1959448.html
Copyright © 2011-2022 走看看