2016-03-08 57 views
1

我知道在PythonQt我可以在Python代码中访问基于MOC'd QObject的类,并且可以从C++执行python代码。是否有可能使用PyQt做类似的事情,还是仅仅用于在Python中编写Qt?我可以在PythonQt中使用PyQt中的Qt元对象系统吗?

我明白SIP用于暴露C/C++代码到Python但似乎并不像使用元对象系统典雅。

回答

1

我从来没有使用过PythonQt,但是在简单介绍一下功能之后,就概念强调而言,它确实应该被称为QtPython。

PyQt的开始生活在蟒蛇原型Qt的C++应用程序的工具。因此,它最初是围绕Qt库一个非常瘦包装,这使得它几乎微不足道的端口Qt代码从蟒到C++,反之亦然。做到这一点还是很容易的。但是自从PyQt4以来,重点已经转移到使Python更易于编写Qt应用程序上;和PyQt5一样,它在这个方向上进一步发展。

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

至于元对象系统:PyQt包装QMetaObject等等,但你的问题没有足够的信息知道这是否会对你有任何用处。

相关问题