我能否像在PythonQt中一样利用PyQt中的Qt Meta-Object系统?



我知道在PythonQt中,我可以在Python代码中访问基于MOC'd QObject的类,并且python代码可以从C++执行。是否可以使用 PyQt 做类似的事情,或者它是否仅用于在 Python 中编写 Qt?

我知道SIP用于向Python公开C/C++代码,但这似乎不如使用元对象系统那么优雅。

我从未使用过PythonQt,但是在简要浏览了一下功能之后,似乎就概念重点而言,它确实应该被称为QtPython。

PyQt最初是作为在python中对Qt C++应用程序进行原型设计的工具。因此,它最初是Qt库的一个非常薄的包装器,这使得将Qt代码从python移植到C++几乎是微不足道的,反之亦然。做到这一点仍然很容易。但自 PyQt4 以来,重点已经强烈转向让用 Python 编写 Qt 应用程序变得更容易;有了 PyQt5,它就朝着这个方向走得更远了。

因此,PyQt现在纯粹用于用python编写Qt应用程序(PySide也是如此)。它不提供任何在C++内执行python代码的工具(除了通过虚拟函数间接执行)。如果您需要向python公开第三方Qt类,则需要使用Sip包装它们。

至于元对象系统:PyQt确实包装了QMetaObject等等,但你的问题中没有足够的信息来知道这对你是否有用。

最新更新