网络寻租

Programmer, Gamer, Hacker

为什么qt是最适合你的

| Comments

image

很多python开发人员, 在选择界面库的时候都会犹豫一段时间, 到底是选择tk, wxpython, pygtk, pyqt, 还是什么其他奇怪的解决方案. 这里, 我建议, 不要多想了, 节省你的时间和精力, 选择pyqt.

很多开发人员, 在选择界面库时候(至少是你能够选择的时候)都会犹豫很长时间, 到底是MFC, winform, WPF, flash, swing, VCL(还有人知道delphi吗), 还是什么其他奇怪的解决方案, 这里, 我建议, 不要多想了, 节省你的时间和精力, 选择pyqt.

好了, 广告时间结束, 这里说明理由:

  • 为什么python?

    • python是最好用最好学的编程语言(没有之一, VB不够好用)
    • 根据GUI的本质思维, 只有动态语言才能做到那么强的灵活性. 所以C/C++/java什么的不方便开发. 不然你动态生成页面试试?
    • 快速开发. 同样的功能, python的代码是其他语言的若干分之一. 代码量少了, 开发速度和质量都提高了.
  • 为什么Qt?

    • 工业级别的界面库. tk, wxpython都太简陋了, 不堪大用. wxpython还有性能问题. (by Jimmy Kuu)
    • 跨平台. VCL, winform, WPF, GTK可能好用一些, 但是跨平台试试? 以后一辈子和某个平台挂钩了. (好吧, GTK, mono可能多平台.. 但是没有pyqt好用)
    • 简单直观的事件处理方式. 只需要把一个signal插入到一个slot里面就好了, 并且是热拔插. callback机制已经过时了.
    • 性能很好, 足够工程使用. 一个实际的例子: linux下面的桌面系统KDE是基於Qt的.
  • 虽然pyqt很好, 但是还有其他需要注意的方面

    • 如果你是开源项目, 随便用. 但是如果是商业闭源, 那需要给 riverbank 他们交费, 一个开发者350英镑, 还是蛮划算的(比起开发时间来说). 或者你可以考虑 pyside?
    • 发布. 打包后的pyqt程序, 10M左右, 如果你对空间要求很严格的话, 就不适合了. 但是现在这个网络时代, 这应该不成问题. QQ都非常大了..
    • 性能. 如果你要画实时图片, 3d什么的, python恐怕太慢了, 老实用回C++吧.
    • 移动应用. meego 还早, 好像可以在android上面写python, 但是pyqt.. 哈哈哈.
    • web2.0. 好吧, jquery是你的武器. 写javascript去吧. 还有flash..

还有我一些其他的看法:

  • Qt的designer是杀手级的. 在linux下面. glader什么的都去死吧.
  • tk8.5好像解决了中文问题. 但是控件是不是太少了? 不够用阿.
  • wxpython太丑了. 哪里比得上Qt支持的qss方式动态设置风格.
  • pyGTK? 没用过. 有时间看看.
  • MFC sucks.
  • delphi. 编译飞快. 但是动态生成界面? 当年研究了很久..
  • WPF: WTF..
  • winform. 他们说不好, 我觉得还好吧?
  • android/iOS. 好吧, 我落伍了.

Comments