注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

蜻蜓点水 举重若轻

君子终日乾乾

 
 
 

日志

 
 

Py 让我怎么爱 QT?

2006-10-31 12:27:07|  分类: Python |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
周末兴冲冲地跑到网上来, 准备写一篇关于 PyQT 的文章 ……

作为民工一名, 平时爱打拼在工地上, 有空出文章的机会不多。最近也逐渐闲下来了, 所以准备整理一些东西到网上来。以前有使用 PyQT 做项目的经历, 所以准备先放一篇《PyQT 快速生产力手册》出来。这是很久以前的事情了。

当时我们要做一种专家系统的数据处理工具, 首先需要具备复杂的 IDE 资料编辑功能, 能切分资料, 标记和着色资料段落, 并能对标记段落进行快速地增删改。同时能够对资料进行即时打分, 编译、测试等处理。复杂度超过普通的 IDE 编辑工具。

当 时, 我们对 Tkinter、wxPython、PyQT、PyGTK 进行了评测以确定项目工具。最后我的判断是 wxPython 最为适合, Tkinter 对于这个项目过于简单, PyGTK 更适合 Gnome, 而 PyQT 的协议让人无法接受。老总对我的评测非常不满意, 他告诉我说 PyQT/QT 要是确实爽, Win32 协议但买无妨。如果 QT 能形成快速生产力, 我们有望逐渐将日常工作软件转移 Linux 下, 将工作平台从 Win32 转移到 Unix 下面去。当然这是一个遥远并且诱人的计划了。

我使用 CygWin/X11 对 PyQT 在 Win32 下的成本作了最后的努力 ……, 最后, 形成了 Python 关于 QT 从商用到免费版的完整安装包系列, 供用户测试、赏玩。尽管我是 wxPython 的粉丝, 但是从 97 年开始我就是一名正版 Linux 程序员, KDevelop/QT 是 C++Builder 之后最熟悉的玩具。所以多年后做 PyQT 的项目自然也是十分顺手。

我为 PyQT 量身定制了一套开发模式, 最后取得了巨大的成功。这个就是所谓 "PyQT 快速生产力" 的核心:

    ·定义 Python Import 钩子, 导入钩子利用管道访问 "pyuic" 程序, 使 Python 程序可以直接导入 QtDesigner 生成的界面文件(具体玩法请参见 Python 手册关于 "imputil.ImportManager" 的部分)。

    ·保持 QtDesigner 生成的界面类的原样, 不动。将 QtDesigner 生成的 UI Class 作为基类, 在派生类中实现软件功能。

这 样, 在开发和调试期界面设计和功能设计完全分离, 这在以后维护中产生了更大的好处。用户对界面的不满被直接提交给 QtDesigner, 几乎是经过一些拖放而以, 跟进需求就被快速消化了。而且程序结构清晰利于维护, 这个软件的产品在半年内频繁升级, 不断推出功能调整性的 patch, 而 BUG 很少。这也让我对 PyQT 另眼相看, 成为跨平台界面复杂 Python GUI 应用的首选。而当时 QT4 GPL 也是呼之欲出, QT 有机会与 wxPython 一争江湖。而在此时我投入到了 AJAX 激战中去了, 抱着对 QT4 的期待。

直 到 QT4.2 我才重新回到 Python GUI Framework 的世界。这时候, 我想做的第一件事情, 就是把关于 PyQT 的跨平台编译以及项目经验做成文档放出来, 推广一下 PyQT。在开始写文档的时候, 我重新打开熟悉的 Riverbank 站点。看看授权协议有何变化。结果令我这种草根非常失望:

    ·The cost of a commercial PyQt license for a single developer is £350 (UK Pounds Sterling). You may pay in either US Dollars, Euros or UK Pounds Sterling.

    ·PyQt does not include a copy of Qt. You must also purchase copies of the commercial edition of Qt from Trolltech.

不 错, PyQT/QT 都是 GPL, 但是我不会为了支持倒霉的 Win32 (和那些愚蠢的用户) 而支付 350 欧元的许可费用。在 Unix 我宁愿选择 wx 和 GTK。我眼前似乎又浮现出以前为了绕过 QT3 Win32 协议而作的 CygWin/X11 移植工作, 这点让我抓狂以至于连脸都抓破了。这样, 关于 PyQT 的文档行动终于无果而终。因为我知道, 对于我们社区而言, 这种努力在许可协议下终将灰飞烟灭。

Py 让我怎么爱 QT?
  评论这张
 
阅读(3614)| 评论(5)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017