Chapter 13無料公開

ツールキットを構成するUI要素を確認する - tk-multi-demo

ks
ks
2021.09.14に更新

ツールキットのappのUIは、「tk-framework-qtwidgets」 で提供されているウィジェットで構築されています。

https://github.com/shotgunsoftware/tk-framework-qtwidgets

https://developer.shotgridsoftware.com/tk-framework-qtwidgets

さらに、それらUIに組み込まれるデータは、「tk-framework-shotgunutils 」 から提供されます。

https://github.com/shotgunsoftware/tk-framework-shotgunutils

https://developer.shotgridsoftware.com/tk-framework-shotgunutils/

appを自作しようとするとき、これらのソースコードやドキュメントを読みながらでも進められますが、 実際動くものを確認しながら だと能率が違います。

ツールキットには、そうしたUIウィジェットのデモのためのapp 「tk-multi-demo」 が用意されています。

tk-multi-demo

https://developer.shotgridsoftware.com/42395ae7/

通常、ツールキットを設置した時点で(=SG Desktopをインストールした時点で)app_store以下にキャッシュはされていて、tk-shell.yml 内でappとして指定されています。
shellということで、Windowsであればcmdを立ち上げ、

cd {tankのあるフォルダ}
tank demos

と実行すると、なんらかの初期化処理が走った後にUIが起動します。

SG Desktopから呼べるようにする

tk-shell.yml のprojectのところに書かれている内容を tk-desktop.yml に移植することで、SG Desktopのパレットから起動できるようになります。

tk-shell.yml
...

# project
settings.tk-shell.project:
  apps:
    tk-multi-demo:    # <-
      location: "@apps.tk-multi-demo.location"    # <-
    tk-multi-launchapp: '@settings.tk-multi-launchapp'
    tk-multi-launchhiero: '@settings.tk-multi-launchapp.hiero'
    tk-multi-launchmari: '@settings.tk-multi-launchapp.mari'
    tk-multi-launchmotionbuilder: '@settings.tk-multi-launchapp.motionbuilder'
    tk-multi-publish2: "@settings.tk-multi-publish2.standalone"
    tk-multi-screeningroom: '@settings.tk-multi-screeningroom.rv'
  location: '@engines.tk-shell.location'

...
tk-desktop.yml
...

# project
settings.tk-desktop.project:
  apps:
    tk-multi-demo:    # <-add
      location: "@apps.tk-multi-demo.location"    # <-add
    tk-multi-pythonconsole:
      location: "@apps.tk-multi-pythonconsole.location"
    tk-multi-devutils:
      location: "@apps.tk-multi-devutils.location"
    tk-multi-launchapp: "@settings.tk-multi-launchapp"

...

これでOK。

ついでに groups にも下記のようなのを書き加えておくと、よりいい感じになります

tk-desktop.yml / groups
  groups:
  - matches:
    - "*Demo*"
    name: Qt Widget Demo

このmatchesの順番はSG Desktopに並ぶ順番に影響し、なににもマッチしない=STUDIOが最上位に置かれ、それ以下は書いた順にパレットが分けられます。画像ではわかりやすく一番上に書いていますが、Demoなので一番下に書き足すのが順当かなと思います。

いろいろなウィジェットを確認

メニューとか

階層をたどるUIウィジェットとか

いろいろな動作が確認できます。
全てのウィジェットはウィンドウ下部の 「Code」タブでコードを確認 できます。

appの内容が内容なので、hookとか設定項目はありません。