Troubleshooting custom engine apps and registered commands

Hello,

I’m attempting to add a custom application to my Maya menu, but I can’t seem to get it to register.

My tk-maya.yml contains:

includes:
- ../app_locations.yml
- ../engine_locations.yml
- ./tk-multi-demo.yml

settings.tk-maya.shot_step:
  apps:
    tk-multi-demo: "@settings.tk-multi-demo"

My tk-multi-demo.yml contains:

includes:
- ../app_locations.yml

settings.tk-multi-demo:
  location: "@apps.tk-multi-demo.location"

And finally my app.py contains:

def init_app(self):
    """
    Initialize the app.
    """

    self.__demo_entities = {}

    payload = self.import_module("tk_multi_demo")

    # define a callback method to show the dialog
    def callback():
        payload.dialog.show_dialog(self)

    self.engine.register_command(
        "Demo",
        callback,
        {"short_name": "demo"}
    )

The app works as standalone out of Shotgun Desktop and I have no problems running it from there in a project context. However, I can’t seem to get it to register in Maya, where sgtk.platform.current_engine().apps does not contain the app at all.

I’m trying to figure out what I’m missing and how best to troubleshoot app integrations with different engines. Any help is most welcome, thanks!

3 Likes

The reason was that in my custom app UI form I was importing from PySide, which Maya didn’t like. The more appropriate Qt imports approach is: from sgtk.platform.qt import QtCore, QtGui

2 Likes