Qt Design StudioプロジェクトをPythonで実行

 

Qt Design Studioの導入を受け、多くのユーザーがさまざまなバックエンドでプロジェクトを実行する可能性について疑問を抱きましたが、これまではC++のみが利用可能でした。

Qt Design Studio (Qt DS)で作成されたQt Quickベースのプロジェクトに機能を追加するためのデフォルト言語はC++でしたが、Python(およびPySide)の人気が高まる中、Qt DSプロジェクトにPythonバックエンドを容易に追加できるようにすることが多くの人々から求められていました。 

取得方法

Pythonパッケージの方法に従い、新しいコンポーネントはプロジェクトにすぐに追加可能です。PySide6がインストールされている仮想環境を有効化し、以下のコマンドをご利用ください。

pip install PySide6_DS

これで完了です。新しいコンポーネントはPySide6のインストールに追加されます。

なぜこれは直線的ではなかったのか? 

Qt DSは、FigmaやPhotoshopなど他のアプリケーションからデザインをインポートする際に柔軟性を高めるため、いくつかの便利なQt Quickコンポーネントを追加しています。しかし、これらのコンポーネントはデフォルトのQtインストールには含まれておらず、そのためPySideバインディングにも含まれていないことから、これらを含むプロジェクトを実行する際にエラーが発生していました。

一時的な対策として、これらのアドホックなQt QuickコンポーネントをPySideインストール環境にコピーする方法がありましたが、Python仮想環境の不安定さのため、持続可能な解決策とは言えませんでした。

プロジェクトのエクスポート

Qt DS 4.6のリリースにより、Pythonエクスポートオプションを有効にすることで、PySideと連携するプロジェクトを実現することが可能になりました。

これを行うには、File > Export Project > Enable Python Generator を選択してください。これにより、プロジェクトファイル内にPythonディレクトリが生成されます。

 

以下の例では、E-bikeプロジェクトを使用しており、プロジェクトをエクスポートすると次の内容が表示されます。Pythonディレクトリには、autogen.pyとmain.pyという2つのPythonファイルが含まれていますのでご確認ください。

~/QtDesignStudio/examples/EBikeDesign % ls -1  
content/  
Generated/  
imports/  
Python/  
src/  
CMakeLists.txt  
EBikeDesign.qmlproject  
EBikeDesign.qmlproject.qtds  
main.qml  
qmlmodules  
qtquickcontrols2.conf  
~/QtDesignStudio/examples/EBikeDesign % tree Python   
Python  
├── autogen  
│   └── settings.py  
└── main.py  
 
2 directories, 2 files 

 

これらのファイルの目的は、アプリケーションを起動するために必要なすべてのコードを含むメインファイルと、プロジェクトの設定用の柔軟なファイルを提供することです。プロジェクトの編集中に自動保存を行う際には、設定ファイルのみが変化し、メインファイルへのURLやQuickコンポーネントが配置されているインポートパスを提供するように設計されています。

今後の展望

 

この初回リリースにおいて、改善の余地がある点をいくつか確認しており、次回のQt DSリリースに向けて新機能の開発に取り組んでいます。

ご提案がありましたら、ぜひお知らせください。 


Blog Topics:

Comments