использовать классы pyqt в Cython (файл .pyx) - PullRequest
0 голосов
/ 16 декабря 2018

Как использовать классы pyqt в Cython (файл .pyx)?
Фактически, как классы pyqt могут наследоваться в классах cython?

спасибо

1 Ответ

0 голосов
/ 16 декабря 2018

Весь код Python должен быть действительным кодом Cython (есть ошибки, поэтому это не совсем так, но это близко).Поэтому код Python, использующий PyQt, должен работать так же, как и в Cython, а если это не так, вы должны сообщить об этом средству отслеживания ошибок Cython.Однако в прошлом люди сообщали о проблемах, потому что PyQt использует несколько потоков, но Cython не выпускает GIL регулярно.Поэтому вы можете обнаружить, что ваше приложение зависает и невозможно объединить PyQt и Cython.


Cython не имеет специального доступа к классам PyQt, поэтому вы не должны cdef их - просто относитесь к ним как к обычнымПеременные Python.

Из-за этого отсутствия специального доступа вы не можете наследовать от них в cdef class.Однако они прекрасно работают, когда вы наследуете в обычном классе.


В общем случае нет смысла пытаться устанавливать типы cdef для обычных объектов Python (включая классы PyQt);просто напишите код, как будто это Python.

...