2010-05-28 93 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對象,這看起來像是你的最佳選擇。