Freewind @ Thoughtworks scala java javascript dart 工具 编程实践 月结 math python english [comments admin] [feed]

(2012-02-20) 使用Python实现“信息更新上传工具”(4)

广告: 云梯:翻墙vpn (省10元) 土行孙:科研用户翻墙http proxy (有优惠)

1. PyCharm

在用PyCharm编写PySide代码的时候,发现提示功能很弱。不论是方法还是参数,都几乎没用提示。选中一个方法后,想跳到它的源代码,也做不到。

我一开始以为自己的设置有问题,或者PyCharm不够强,想找一个更强大的工具,毕竟没有提示的话,只能靠看文档或者猜,太累了。但我把PySide的代码下载下来之后,发现有点不对劲,因为里面没多少py文件,cpp和xml倒是很多。PySide不是让Python使用QT的库吗,怎么没有Python代码呢?

打开安装到Python中的PySide,看到了一大堆的.pyc和.pyd,就是没有.py。其中有一个QtGui.pyd有6M多,很可疑。经过研究,发现原来PySide本身本不是用Python写的,而是在xml中定义了很多类与方法的接口,再用工具转成.pyd文件。这里可能不准确,但原理差不多,总之我们看到不Python源代码,PyCharm也没有办法进行提示了。

听说有一些IDE可以提示PyQt的方法(PySide的api跟PyQt基本一致),比如Eric之类,但我试用了一下,没找到该功能,而且使用方法很不习惯,还是回到了PyCharm了。

看来只有多看文档多背API了。

参见:http://stackoverflow.com/questions/9358897/what-can-i-do-to-let-pycharm-find-the-source-of-pyside

2. PyDev

听说PyDev可以导入一个.api文件,就能很好的支持PyQt4了,非常向往,于是安装了PyDev。

装好后试用,发现对于PySide的提示,要比PyCharm好一点。例如,如果import语句是这样的话:

from PySide.QtGui import *

就可以在生成一个QLabel后,在提示中找到resize方法。而在这PyCharm中做不到。

然后,我按照这个文档的提示,去添加那个*.api:http://pydev.org/manual_101_interpreter.html

我想,只要能装上PyQt4的api,我只需要把文件里的PyQt4改成PySide,应该也能对PySide进行提示了。然后可惜的是,不论我怎么试,提示都不生效,连PyQt4的都没有。

一怒之下,还是用PyCharm,不差你那两个提示。

comments powered by Disqus