我知道在 PythonQt 中我可以在 Python 代码中访问基于 MOC 的 QObject 类,并且可以从 C++ 执行 python 代码。是否可以使用 PyQt 做类似的事情,或者它是否仅用于在 Python 中编写 Qt?
我知道 SIP 用于将 C/C++ 代码公开给 Python,但这似乎不如使用元对象系统优雅。
最佳答案
我从来没有用过PythonQt ,但在简要浏览一下这些功能后,似乎从概念强调的角度来看,它确实应该被称为 QtPython。
PyQt 最初是作为在 python 中对 Qt C++ 应用程序进行原型(prototype)设计的工具。因此,它最初是 Qt 库的一个非常薄的包装器,这使得将 Qt 代码从 python 移植到 C++ 几乎是微不足道的,反之亦然。做到这一点仍然很容易。但是自从 PyQt4 以来,重点已经强烈地转向使用 Python 编写 Qt 应用程序变得更容易;而对于 PyQt5,它朝着这个方向走得更远。
因此,PyQt 现在纯粹用于在 python 中编写 Qt 应用程序(PySide 也是如此)。它不提供任何在 C++ 中执行 python 代码的工具(除了通过虚函数间接执行)。如果您需要向 python 公开第三方 Qt 类,则需要使用 Sip 包装它们。
至于元对象系统:PyQt 确实包装了 QMetaObject等等,但是您的问题中没有足够的信息来了解这对您是否有用。
关于python - 我可以像在 PythonQt 中那样在 PyQt 中利用 Qt 元对象系统吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35860721/