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