Qtを使用してC++アプリケーションを作成したいのですが、最初にPythonを使用してプロトタイプを作成し、次にPythonコードを徐々にC++に置き換えます。これは正しいアプローチですか?
それはあなたの目標に依存します。両方を行った後、可能な限り合理的にPythonを使用することをお勧めします。少し規律が必要ですが、Pythonで非常に大きなアプリケーションを作成することは非常に可能です。ただし、C ++でより適切に処理できるホットスポットやものを見つけたら、関連する部分をC++に確実に移植できます。
このプロセスに関する包括的なドキュメントはありますか、それともすべてのコンポーネントを学習する必要がありますか?はいの場合、どのコンポーネントを学習する必要がありますか?
さまざまな作品におすすめするものは次のとおりです。
エディター/IDE:使い慣れたエディター/ IDEを使用しますが、リファクタリングをサポートするエディター/IDEを強くお勧めします。Eclipseに慣れている場合は、それを使用してください。主にC++ルートを使用したいが、エディターにあまり精通していない場合は、QtCreatorを使用したほうがよい場合があります。 Ericは、リファクタリングをサポートする非常に優れたPython IDEです。ただし、多くのC ++を実行する予定がない場合は、それを確認してください。さらに良いことに、そのソースコードはPyQtの優れた使用法と実践の例です。
プロセス:
簡単な要約:
- PyQtを使用してPythonでアプリケーションを作成する
- ホットスポットとして識別されたら、分離されたPythonクラスをC++に変換します
- SIPを使用してこれらのクラスのバインディングを作成する
- 新しく定義されたライブラリを、対応するPythonの代わりにPythonにインポートします
- スピードブーストをお楽しみください
一般的な詳細:
PyQtを使用してPythonでアプリケーションを作成します。関心の分離を適切に保つように注意してください。そうすることで、C ++にピースを移植する必要があるときに、それらが依存関係から分離されます。最終的に何かをC++に移植する必要がある場合は、それをC ++ / Qtで記述し、SIPを使用してそのバインディングを作成します。SIPにはプロセスに関する優れたリファレンスマニュアルがあり、例としてすべてのPyQtがあります。
展開:
C ++ -多くのアプリケーションでは、依存関係は十分に単純なので、 NullSoftのInstallerやInnoSetupなどのツールを使用してインストーラーを作成することはそれほど難しくありません。
Python / PyQt -PyQtアプリケーションは、Pythonに依存し、Qtライブラリの存在に依存しているため、インストールが少し難しくなります。ある人は、ARSTechnicaでこの投稿に対する彼の努力を記録しました。 py2exeはWindowsで非常にうまく機能し、正常に機能するはずです。Pythonソースに付属しているIME、freeze.pyは、どの共有ライブラリが本当に必要かを判断する際に問題が発生する場合があり、依存関係が存在しないバイナリを作成してしまう場合があります。Py2appはMacOSXで動作するように作成できます。
しかし、さらに悪いのは、PyQt/Qtライセンスです。商用アプリケーションを開発している場合は、商用PyQt(およびQt)ライセンスが必要です。ライセンスの制限により、ユーザーがソースを簡単に変更したり、PyQt /QtAPIに対してコードを記述したりできないようにする必要があります。そのため、PyQtの作成者はVendorIdというツールを作成しました(ただし、Pythonライセンスがあります)。VendorId内には、Pythonインタープリターのみに依存する実行可能ファイルを作成するために使用できるSIBと呼ばれるツールがあります。ただし、ここまで進む場合は、アプリケーションと一緒にカスタムPythonをインストールすることをお勧めします。
免責事項:私はPySideをまったく使用していないので、PyQtと比較してどうなるかわかりません。また、彼らのWebサイトで次の警告に注意してください。
PySideは進行中の作業であり、本番レベルの安定性を必要とするアプリケーション開発にはまだ適していません。
しかし、良いことに、彼らは少なくとも最初のリリースでは「PyQtとのAPI互換性を維持する」ことを意図しています。したがって、C ++バインディングを除いて、後で2つを簡単に切り替えることができます。