【发布时间】:2020-06-01 07:40:09
【问题描述】:
我正在尝试按字母顺序排列 Maya 书架。我知道我可以按顺序导入架子,但我想在导入架子后执行此操作,因为默认的 Maya 架子会自动导入 Maya。
我尝试在shelfLayout命令中使用位置参数,但我不确定它是否正确,或者是否正确,那么我不知道如何使用它。如果有人能对此有所了解,那就太棒了。
【问题讨论】:
我正在尝试按字母顺序排列 Maya 书架。我知道我可以按顺序导入架子,但我想在导入架子后执行此操作,因为默认的 Maya 架子会自动导入 Maya。
我尝试在shelfLayout命令中使用位置参数,但我不确定它是否正确,或者是否正确,那么我不知道如何使用它。如果有人能对此有所了解,那就太棒了。
【问题讨论】:
查看以下代码 sn-p 了解如何按字母顺序重新排列货架标签:
import maya.cmds as cmds
import maya.mel as mel
def reorderTabsAlphabetically():
gshelf = mel.eval("$temp = $gShelfTopLevel")
shelves = cmds.tabLayout(gshelf, q=1, childArray=1)
total = len(shelves)
pref = 'abc'
print(total) # 16 tabs
shelf = sorted([s for s in shelves if s.startswith(pref)]) + # line break
sorted([s for s in shelves if not s.startswith(pref)])
for i, object in enumerate(shelf):
i += 1
sIndex = cmds.tabLayout(gshelf, q=1, childArray=1).index(object) + 1
cmds.tabLayout(gshelf, e=1, moveTab=(sIndex, i))
reorderTabsAlphabetically()
如您所见,所有选项卡现在都按升序排列(按字母顺序)。
【讨论】: