从 Python 使用 Qt 小部件的通常方法似乎是对它们进行子类化。
Qt 小部件类有很多方法,因此我不可避免地要在子类中添加一个方法,其名称与从 Qt 小部件继承的方法同名。在 Python 中,所有方法都是虚拟的,所以我担心的是一些 Qt 代码可能最终调用我的方法而不是预期的 Qt 方法——在最坏的情况下,打破一些不容易显示的边缘情况正在测试中。
另一方面,也许所有 PyQt 方法都只是 C++ 代码的包装器,这当然不会受到我在 Python 子类化方面所做的任何事情的影响。
有谁知道情况是怎样的?
最佳答案
如果底层 C++ 方法是虚拟的,覆盖它们的 Python 方法将在 C++ 代码调用它们时被调用。如果它们只是常规方法,任何 C++ 代码都会默认调用原始 C++ 方法(尽管 Python 代码会调用 Python 方法,因为它看到 Python 对象并且所有方法在那里都是“虚拟的”)。
关于python - PyQt 子类化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1828567/