python - 我可以像在 PythonQt 中那样在 PyQt 中利用 Qt 元对象系统吗?

标签 python c++ qt pyqt

我知道在 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/

相关文章:

python - 将条件应用于多个数组

python - 了解 kfold scikit learn 上的 cross_val_score

python - 如何将多个条件传递给 python peewee 的 join 参数?

c++ - 指向成员函数错误的指针

linux - 无法在 Linux Mint 15 中找到库 liboleaut32

Python:导航到便携设备目录 (Windows 7)

c++ - 使用 C++ 在 ffmpeg 中解码为特定像素格式

c++ - 有人如何定义数据类型,然后在数据类型定义之后立即在同一文件中包含的其他文件中使用它

c++ - 在 QLabel 中显示图像

c++ - Qwt替代方案