GUI開発をもう少し勉強したく、SU2のGUIで使われているTrameを調査することとした。
Trameのインストール
公式ドキュメントに沿って実行する。
今回はWindowsのPythonで構築するので、適宜読み替えていく。
まずは作業用のフォルダを作成する。
チュートリアルをgit cloneでダウンロードする。
git clone https://github.com/Kitware/trame-tutorial.git
仮想環境を構築し、そこに必要なライブラリを追加する。
python -m venv .venv
.\.venv\Scripts\activate
python -m pip install --upgrade pip
pip install trame # Install trame core
pip install trame-vuetify trame-vtk # Install widgets that we'll be using
pip install vtk # Install the VTK library
最初のチュートリアルを実行する。
python .\trame-tutorial\00_setup\app.py --port 1234
Hello trameと表示された。
00_setup\app.pyの中身を確認する。全体はこのようになっている。
from trame.app import get_server
from trame.ui.vuetify import SinglePageLayout
# -----------------------------------------------------------------------------
# Get a server to work with
# -----------------------------------------------------------------------------
server = get_server(client_type = "vue2")
# -----------------------------------------------------------------------------
# GUI
# -----------------------------------------------------------------------------
with SinglePageLayout(server) as layout:
layout.title.set_text("Hello trame")
# -----------------------------------------------------------------------------
# Main
# -----------------------------------------------------------------------------
if __name__ == "__main__":
server.start()
まず、使用するライブラリを読み込む。
from trame.app import get_server
from trame.ui.vuetify import SinglePageLayout
trameのapp
から、UIとビジネスロジックをバインドするサーバーインスタンスを取得するためのファクトリー関数をインポートします。また、trame.ui.vuetify
から、vuetify(メインのウィジェットライブラリ)に依存する単一ページのクライアントアプリケーションのスケルトンをインポートします。
次に、バインド先となるサーバーを渡してグラフィカルユーザーインターフェース(GUI)を定義します。そして、そのレイアウトを使用してツールバーのタイトルを"Hello trame"
に更新します。
server = get_server(client_type = "vue2")
with SinglePageLayout(server) as layout:
layout.title.set_text("Hello trame")
main.pyが実行されるとserver.start()を実行する。
if __name__ == "__main__":
server.start()
実行時に--port xxxxをつけると接続ポートを指定できる。
次回はこれを読んでいく。