如何在Cython(.pyx文件)中使用pyqt类?
实际上,如何在cython类中继承pyqt类?
谢谢
答案 0 :(得分:3)
所有Python代码应该应该是有效的Cython代码(存在错误,因此并非如此,但这很接近)。因此,使用PyQt的Python代码应该可以在Cython下正常工作,如果不能运行,则应将其报告给Cython Bugtracker。但是,过去人们报告了问题,因为PyQt使用多个线程,但是Cython不会定期释放GIL。因此,您可能会发现您的应用程序挂起,无法将PyQt和Cython结合使用。
Cython对PyQt类没有特殊的访问权限,因此您不应该cdef
-只需将它们视为普通的Python变量即可。
由于缺少特殊访问权限,因此您无法在cdef class
中继承它们。但是,当您从普通类继承时,它们可以正常工作。
通常,尝试为常规Python对象(包括PyQt类)设置cdef
类型是没有好处的;就像编写Python一样编写代码。