在Cython中使用pyqt类(.pyx文件)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Cython中使用pyqt类(.pyx文件)相关的知识,希望对你有一定的参考价值。

如何在Cython(.pyx文件)中使用pyqt类? 实际上,如何在cython类中继承pyqt类?

谢谢

答案

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


Cython没有对PyQt类的特殊访问权,因此你不应该对它们进行cdef - 只需将它们视为普通的Python变量即可。

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


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

以上是关于在Cython中使用pyqt类(.pyx文件)的主要内容,如果未能解决你的问题,请参考以下文章

.pyx 和 .pxd 文件在子目录中时的 Cython 0.23.4 AttributeError

Cython __pyx_r 可能在此函数中未初始化使用

python / cython编译pyx:致命错误:capsule.h:没有这样的文件或目录

重载 operator() 在 Cython 中失败

cython 中的异常处理

如何用 Cython 包装 C++ 类?