0

私は 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 にキャストするのに疲れましたが、それも好きではありません。私が言えることから、Pythonの QImage() はCの QImage * に正確にマップする必要がありますが、Pythonはそれを理解していないようです..

キャストを強制する方法はありますか?

4

1 に答える 1

1

ctypesC++ ではうまく動作しないため、PySide 独自のラッパーである Shibokenを使用することをお勧めします。彼らは実際にそれを使用して、Qt ライブラリ自体をラップしています。あなたのコードは Qt オブジェクトを扱っているので、これはあなたにとって完璧な選択のようです。

于 2010-05-28T15:13:55.767 に答える