Pregunta

Estoy construyendo una aplicación con PySide, hay algo de manipulación de imágenes que hay que hacer y usar el código Python para esto es demasiado lento. Por lo tanto me han pirateado un archivo .dll que lo hará por mí. La definición de la función es la siguiente:

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

Ahora puede cargar a través de esta función en ctypes. Pero me parece que no puede conseguir ctypes a aceptar un QImage. Traté de llamar de esta manera:

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

Y la respuesta que recibo es:

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

Me fundición cansado al QImage a un c_void_p y no le gusta eso tampoco. De lo que puedo decir QImage () en Python debe asignar exactamente a un QImage * en C, Python, pero no parece entender que ..

¿Hay alguna manera de forzar el casting?

¿Fue útil?

Solución

Desde ctypes para C ++ no está funcionando muy bien , yo recomendaría el uso propio envoltorio de PySide - Shiboken . En realidad lo utilizan para envolver el Qt LIBS sí mismos. Desde sus ofertas de código con objeto de Qt, esto parece la elección perfecta para usted.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top