2011-02-03 10 views
0

Qt(C++)を使用してアプリケーションを作成し、 がドキュメントを管理しています。私のプログラムには、 このドキュメントをカプセル化し、それをストリームする方法などを知っているクラスがあります。これらのドキュメントを操作するPyQtを使用して 小さなアプリケーションを作りたいと思います。 このC++クラスを公開/再利用する方法(実装するのが最も簡単なこと)は何ですか?私はPyQtスクリプトのドキュメントにアクセスできますか?私は本当にPythonで既存のコードを複製したくありません。ありがとう。Qt/PyQt - ドキュメントの読み書きのための共通コード

答えて

1

クラスを共有ライブラリに移動し、SIPを使用してPython用のバインディングを作成します。驚くほど簡単で、PyQtを作成するのに使用されるツールと同じツールなので、Qt機能を完全にサポートしています。私が遭遇した唯一の問題はマーシャリング/アンマーシャリングが非常に遅いことです。クラスで多くのコールやコールバックが必要な場合は、パフォーマンスの問題が発生する可能性があります。

+0

ありがとうSergey - 私はこれを試します;スピードは重要な要素ではないので、理想的かもしれません。 – jolyon

+0

oh。私が望んでいたほどシンプルではないようです。私はそれをブースト・パイソンを使ってやってきました。これは、私のファイルのpythonユーザがpyqtを使う必要はなく、普通の古いpythonを使うことができるという利点があります。私はC + +から任意のQTishのネスを公開する必要はありませんので、これはちょっといいです。私が一週間を過ごすと、私はSIPを再訪するでしょう - それはとても面白そうです - もう一度感謝します。 – jolyon

+0

@jolyon、SIPの唯一の問題は、それらの* .sipファイルを書く必要があることです。しかし、通常はC++ヘッダーから変更することはできません。私は通常、いくつかの例からコピーして少し変更する設定スクリプトです。最初から書くのはかなり難しいです。その後、configureとmakeを実行するだけです。ところで、SIPはPyQtの使用を強要しません。ネイティブでサポートしていますが、シンプルなC/C++ライブラリにも使えます。 –

関連する問題