Я могу подтвердить, что "ActiveViewChanged"
, похоже, не имеет никакого эффекта. После поиска вокруг кажется, что у многих других есть та же самая проблема.
Вы можете попытаться использовать это вместо этого: cmds.scriptJob(event=["ModelPanelSetFocus", "clix()"])
Хотя это, кажется, не срабатывает, когда вы ожидаете это ( щелчок по окну просмотра!) Вместо этого он срабатывает при нажатии клавиши в окне просмотра.
Возможно добавление обратных вызовов через API с помощью OpenMaya
. Единственное, что я нашел, было это:
OpenMaya.MEventMessage.addEventCallback("ActiveViewChanged", clix)
Хотя это ведет себя точно так же, как "ModelPanelSetFocus"
.
Я полагаю, вы также можете установить таймер, который запрос - это текущая панель, чтобы определить, было ли она изменена или нет, затем активировать, если она была изменена. Это может быть хорошо для временного таймера, например, если он работает на время открытия инструмента, но я был бы против, если предполагается, что он будет работать в течение всего сеанса Maya, поскольку это добавит дополнительные издержки.