我有一個腳本可以修改Maya渲染層選項卡。我想知道如果用戶使用內置的Maya界面更改渲染選項卡狀態和其他內容,是否有動態浮動UI更新的方法。例如,如果用戶更改內置界面中的渲染圖層,腳本選項卡中的渲染圖層會更新。有沒有辦法讓瑪雅python gui更新對Maya其餘部分的設置進行更改?
1
A
回答
1
這是可行的,但並非微不足道。
你會用scriptJob
來觀察變化並相應地更新你的gui。
某些類型的更改會直接顯示 - 例如,您可以通過腳本作業響應用戶更改播放範圍,該腳本作業對playbackRangeChanged
事件作出反應。上面鏈接的文檔頁面包含可以偵聽的更改事件的列表。
如果您正在觀察屬性的更改,則可以使用attributeChange
scriptJob類型在特定屬性發生更改時(通過UI或其他任何方式)運行腳本。
import maya.cmds as cmds
def test():
print "focal length:", cmds.getAttr('perspShape.focalLength')
cmds.scriptJob(ac = ("perspShape.focalLength", test))
其他種類的變化(其中大多數)不能作爲預定義的事件:例如,每當Persp相機的焦距變化,這將打印的消息。您可以使用condition
command創建自己的事件,但您必須編寫檢測更改的代碼。很多人通過使用腳本作業來簡化事情,該腳本作業在Maya閒置並查找更改時運行。這很有效,但是你必須小心翼翼地編寫它,因爲複雜的腳本會讓Maya變得非常緩慢 - 只要用戶沒有與UI進行交互,它就會運行。
相關問題
- 1. jQuery:有沒有辦法讓這個更短,更優雅?
- 2. 有沒有辦法讓我的Python程序運行得更快?
- 3. gui沒有更新
- 4. Python類的方法 - 有沒有辦法讓通話更短?
- 5. 有沒有辦法讓Browserify更快?
- 6. 有沒有辦法讓@PersistenceContext更靈活?
- 7. 有沒有辦法在WinUSB下更改設備配置?
- 8. 有沒有辦法使用Subversion進行反向更新?
- 9. 對沒有更新的應用程序進行更改
- 10. 有沒有辦法讓c#中的日期更改通知?
- 11. 有沒有辦法從命令行更改默認的Windows代理設置?
- 12. 有沒有辦法讓drawText()更新QPicture的邊界矩形?
- 13. 有沒有辦法讓SSRS 2008圖表顯示頂部X結果和其他組合/其餘部分?
- 14. 執行SQLAlchemy更新()後,有沒有辦法獲取更改的值?
- 15. 在創建新線程時,對GUI的更改沒有進行(C#)
- 16. 有沒有辦法安排html更改?
- 17. 有沒有辦法傾聽Animatable.isRunning更改?
- 18. 有沒有辦法恢復wordpress更新?
- 19. 有沒有辦法在Android上對沙盒進行部分的java進程?
- 20. Python瑪雅 - 如果objectType返回「沒有指定對象名稱」
- 21. 有沒有辦法讓git pull自動更新子模塊?
- 22. 有沒有辦法通過SQL更新最新版本的行?
- 23. 導出換行從瑪雅到Maya的變形對象
- 24. 有沒有辦法檢查Python Tk窗口中的更改?
- 25. 有沒有辦法爲其他進程設置令牌?
- 26. 存儲nuget包的設置。有沒有更好的辦法?
- 27. 有沒有讓這種邏輯更優雅的Pythonic方法?
- 28. 有沒有辦法監視對象的更改?
- 29. elasticsearch用python進行部分更新
- 30. 瑪雅的Python - 基於主動命令