考虑强化GUI和其他模块之间的结构,其中考虑的一种典型方案是MVC的方式,以下为两篇关于Python使用MVC编程的入门示例:

支持插件的组织方式可以参考:

为了获得较好的Mac系统支持,考虑迁移到wxPython,因为目前的PyGTK在Mac上的实现主要还是依靠X11 Port,原生窗口支持不够可靠。而我希望能有配合wxPython的图形界面设计工具:由于PythonCard不支持Sizer定位方式,所以舍弃了;XRC的解决方案不支持用可视化工具完成事件绑定,所以也在考虑舍弃;可以选择的方案时wxGlade,利用Sizer加上占位用的组件完成设计,也能够在可视化界面中完成事件绑定(直接输出Python代码的方式能做到事件绑定,输出XRC方式则不可以。有人认为XRC方法可以更好地分离表现层和程序逻辑,我认为即使输出为Python代码,仍然可以通过程序结构的设计避免表现层的Python类和逻辑层的Python类过分耦合——只要把wxGlade生成的代码看作表现层资源,其唯一的功能是调用Control层的相应处理器不就好了)。

考虑利用自定义wxPython的事件机制来实现各层间的通讯,具体应该是类wx.lib.evtmgr.EventManager(此类基于wx.lib.pubsub)。

考虑利用ftptuil作为底层ftp客户端协议实现。


TraitsUI说是基于wxPython完成的一个MVC的框架,细节还没测试。

SocksiPy一个纯Python的Socks4、Socks5、HTTP代理使用的客户端库,可以作为使用代理连接服务器的实现参考。

GlossyBlue theme adapted by David Gilbert
Powered by PmWiki