python - PyQt 子类化

标签 python qt qt4 pyqt pyqt4

从 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/

相关文章:

c++ - 将 QImage 保存到 QBuffer

python - 在 python 中,如何向正则表达式函数添加特殊情况?

python - 如何在python中算术时检测溢出?

python - Django 使用一个 python session 响应来自不同浏览器的不同请求

c++ - WPD API - 无法从设备传输内容(包括 SSCCE)

c++ - 使用 QtGStreamer 检索视频大小返回零

python - 生成所有排列,其中排列长度 > Python 中元素的数量

c++ - 如何将子项添加到 QGraphicsItem

qt - 如何查看QT中CPU的数量?

c++ - 在 Qt4 中隐藏 QMenuBar 的条目?