PyQt子类化

时间:2009-12-01 20:10:10

标签: python qt qt4 pyqt pyqt4

从Python使用Qt小部件的常用方法似乎是将它们子类化。

Qt小部件类有很多方法,所以我不可避免地要在子类中添加一个方法,其名称与从Qt小部件继承的方法相同。在Python中,所有方法都是虚拟的,所以我关心的是一些Qt代码可能最终调用我的方法而不是预期的Qt代码 - 在最坏的情况下,打破一些不容易显示的边缘情况在测试中。

另一方面,也许所有PyQt方法都只是C ++代码的包装器,这当然不会受到我在Python子类化方面所做的任何事情的影响。

任何人都知道这是哪种情况?

1 个答案:

答案 0 :(得分:3)

如果底层C ++方法是虚拟的,那么在C ++代码调用它们的任何时候都会调用覆盖它们的Python方法。如果它们只是常规方法,那么任何C ++代码都会默认调用原始C ++方法(Python代码会调用Python方法,因为它看到了Python对象,所有方法都是“虚拟”)。