ctypes и PySide - PullRequest
       29

ctypes и PySide

0 голосов
/ 28 мая 2010

Я создаю приложение с PySide, необходимо выполнить некоторые манипуляции с изображениями, и использование кода Python для этого слишком медленно. Поэтому я взломал файл .dll, который сделает это за меня. Определение функции выглядит следующим образом:

   extern "C" {
QRectF get_image_slant(QImage *img, float slantangle, float offset) {

Теперь я могу загрузить эту функцию через ctypes. Но я не могу заставить ctypes принимать QImage. Я пытался назвать это так:

ext.get_image_slant(QImage(), 0, 0)

И я получаю ответ:

File "<stdin>", line 1, in <module>
ctypes.ArgumentError: argument 1: <type 'exceptions.TypeError'>: Don't know how to convert parameter 1

Я устал бросать QImage в c_void_p, и это тоже не нравится. Из того, что я могу сказать, QImage () в python должен отображаться точно на QImage * в C, но Python, похоже, не понимает этого ..

Есть ли способ заставить кастинг?

1 Ответ

1 голос
/ 28 мая 2010

Поскольку ctypes для C ++ работает не очень хорошо , я бы рекомендовал использовать собственную оболочку PySide - Shiboken . Они фактически используют это, чтобы обернуть библиотеки Qt сами. Поскольку ваш код имеет дело с объектом Qt, это кажется вам идеальным выбором.

...