Python pyqt和qt4中的pydev代码完成和duck类型

Python pyqt和qt4中的pydev代码完成和duck类型,python,pyqt,pydev,code-completion,Python,Pyqt,Pydev,Code Completion,您好,我刚刚安装了pydev,因为代码已经完成。 我的第一个草图是一些简单的qt小部件 我正在驾驶mouseMoveEvent: def mouseMoveEvent(self, event): mouse = event.pos() 现在。。我知道事件变量是QtCore.QPoint类型。。但是代码完成不起作用。。好吧,我明白了:并没有硬类型,有鸭子类型,理论上,事件可以是任何可能的类型 相反,如果我有以下代码: point = QtCore.QPoint() 当我写点的时候。代

您好,我刚刚安装了pydev,因为代码已经完成。 我的第一个草图是一些简单的qt小部件

我正在驾驶mouseMoveEvent:

def mouseMoveEvent(self, event):

    mouse = event.pos()
现在。。我知道事件变量是QtCore.QPoint类型。。但是代码完成不起作用。。好吧,我明白了:并没有硬类型,有鸭子类型,理论上,事件可以是任何可能的类型

相反,如果我有以下代码:

point = QtCore.QPoint()
当我写点的时候。代码完成可以很好地工作(当然它毫无疑问知道类型!)

我还希望在重写mouseMoveEvent中完成代码。。除了C++和java语言中的语言和移位之外,我还能做什么? 解决方案: 正如我在这个技巧中指出的:

def mouseMoveEvent(self, event):
    assert(isinstance(event, QtGui.QMouseEvent))

    mouse = event.

我确信这不是Python的问题,而是PyDev的设置问题

有很多可用的PythonIDE在处理您提到的代码完成方面没有问题,例如


因此,如果你不能让PyDev做正确的事情,答案不是切换语言,而是切换IDE。

看到这个答案:我在komodo中经常这样做,我不确定它在PyDev中是否有效,但值得一试。@nkint我必须纠正你:
断言(isinstance(inst,class))
对我不起作用,但是
断言isinstance(学院、班级)
工作得很好。@nkint.是的,但我认为eric使用了一种更实用的方法。它将显示从当前文档和/或当前安装的API中获取的所有可能的完整性,而不是那些特定于当前对象的完整性。我自己不使用eric,但我使用了一种类似的编辑器,我发现这种风格的auto co实现对我来说非常好(实用性胜过纯洁性等等)。