2010-05-28 51 views
0

我正在用PySide构建一个应用程序,需要完成一些图像处理,并且使用Python代码的速度太慢。所以我砍掉了一个.dll文件,它会为我做。函数定义如下:ctypes和PySide

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

现在我可以通过ctypes加载这个函数。但我似乎无法让ctypes接受QImage。我试着给它这样的:

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

而我得到的回复是:

​​

我累了铸造的QImage到c_void_p和它要么不喜欢这一点。从我可以告诉的Python中的QImage()应该完全映射到C中的QImage *,但Python似乎并不明白这一点..

有没有什么办法强制铸造?

回答

1

因为​​为C++ isn't working very well,我会推荐使用PySide自己的包装 - Shiboken。他们实际上使用它来自己包装Qt库。由于你的代码处理Qt对象,这看起来像是你的最佳选择。