首页 > 解决方案 > 在 Cython(.pyx 文件)中使用 pyqt 类

问题描述

如何在 Cython(.pyx 文件)中使用 pyqt 类?
其实pyqt类在cython类中怎么继承呢?

谢谢你

标签: pythonpyqtcython

解决方案


所有 Python 代码都应该是有效的 Cython 代码(存在错误,所以这不太正确,但很接近)。因此,使用 PyQt 的 Python 代码应该像在 Cython 下一样工作,如果不能,那么你应该将它报告给 Cython bugtracker。然而,过去人们报告了问题,因为 PyQt 使用多个线程但 Cython 并没有定期发布 GIL。因此,您可能会发现您的应用程序挂起,并且无法组合 PyQt 和 Cython。


Cython 没有对 PyQt 类的特殊访问权限,因此您不应该使用cdef它们 - 只需将它们视为普通的 Python 变量。

由于缺乏特殊访问权限,您无法在cdef class. 但是,当您从普通类继承时,它们可以正常工作。


一般来说,尝试cdef为常规 Python 对象(包括 PyQt 类)设置类型没有任何好处;只需像编写 Python 一样编写代码即可。


推荐阅读