初出:SRA Qt MailNews 2019年9月号
改訂:2026年10月21日
掲載当時の事例を読みやすく再編集しました。本文の製品・構成・数値は当時の情報です。今回の解説・訂正は「編集補足」に記載しています。
この事例の要点
Gamry Instrumentsは、Windows向けの分析ツールを刷新する際、既存C++資産を活かしながらPythonによる拡張を可能にしました。Qt for Python、Qwt、Shibokenの役割が具体的な事例です。
刷新の要件
Gamry Echem Analystには、利用者がスクリプトで分析を拡張できること、macOSとWindowsで動作すること、大規模な複数データを描画できること、既存のC++分析ライブラリを利用することが求められていました。
Qt Professional Servicesは、UIにQt for Python、グラフ表示にQwtを使う方法を提案しました。QwtはC++とQt Widgetsを基盤としているため、Pythonから呼び出す仕組みが必要です。
ShibokenでC++資産を接続
Shibokenを用いてQwtのPythonラッパーを生成し、PythonのスクリプトからC++のクラスを呼び出せるようにしました。同じ仕組みをGamryの既存C++分析ライブラリにも利用しています。
構成は「PythonのUI・スクリプト → Shibokenで生成したラッパー → Qwtと既存C++分析ライブラリ」です。UIや利用者による拡張をPythonで扱い、既存の計算処理をC++資産として活かしています。
編集補足:言語の境界を小さく試す
下の図は本文の役割分担をまとめたものです。自社のC++資産で試す場合は、まず一つの分析処理をPythonから呼び出し、入力データ、戻り値、失敗時の扱いを確認します。その上で、頻繁に変更するUIと、再利用する計算処理の境界を決めると、全面的な書き換えを避ける判断ができます。
図:PythonからC++資産を利用する流れ(編集部による整理)
PythonのUI・スクリプト
→
Shibokenで生成したラッパー
→
Qwt/既存C++分析ライブラリ
出典・参考資料
出典:SRA Qt MailNews 2019年9月号の採用事例欄をもとに編集。
コラム一覧へ