我正在maya中制作一个UI,在那里我想创建一个带有一组textFieldButtonGrp
的下拉选项卡(提示命名选项卡),或者在我按add'+'或remove'-'按钮时删除它。你知道吗
UI代码(带一个选项卡):
import maya.cmds as cmds
import pymel.core as pm
import maya.cmds as cmds
import maya.OpenMaya as om
import math
from functools import partial
###################################################################################
#TOOL WINDOW# #TOOL WINDOW#
###################################################################################
def frameCollapseChanged(ToolWindow):
cmds.evalDeferred("cmds.window('ToolUI', e=1, h=sum([eval('cmds.' + cmds.objectTypeUI(child) + '(\\'' + child + '\\', q=1, h=1)') for child in mc.columnLayout('" + ToolWindow + "', q=1, ca=1)]))")
#check to see if window exists
if cmds.window("ToolUI", exists = True):
cmds.deleteUI("ToolUI")
#create window
ToolWindow = cmds.window("ToolUI", title = "Tool UI", mnb = True, mxb = False,)
#create a main layout
mainLayout = cmds.columnLayout (adjustableColumn=True)
form = cmds.formLayout()
tabs = cmds.tabLayout(innerMarginWidth=5, innerMarginHeight=5,cr=True)
cmds.formLayout( form, edit=True, attachForm=((tabs, 'top', 0), (tabs, 'left', 0), (tabs, 'bottom', 0), (tabs, 'right', 0)) )
###################################################################################
#SETUP TAB CONTENT# #SETUP TAB CONTENT#
###################################################################################
child1 = cmds.rowColumnLayout(numberOfColumns=1,adjustableColumn=True)
cmds.text(label = 'Root Joint Selection', align ='center')
cmds.button(label = 'Add Selector', command=lambda event:Name_DialogBox())
cmds.setParent( '..' )
###################################################################################
#TOOL TAB CONTENT# #TOOL TAB CONTENT#
###################################################################################
child2 = cmds.rowColumnLayout(numberOfColumns=2, columnWidth=(300,250),adjustableColumn=True)
cmds.columnLayout(columnAttach=('both', 5),columnWidth=300, columnAlign="center", adjustableColumn=True )
cmds.text(label = 'FK IK Switch', align ='center')
cmds.setParent( '..' )
cmds.setParent( '..' )
###################################################################################
#TOOL TABS# #TOOL TABS#
###################################################################################
cmds.tabLayout( tabs, edit=True, tabLabel=((child1, 'Set Up'), (child2, 'Tool')) )
cmds.showWindow()
winHeight = 0
# iterate through all children of the main layout
for child in cmds.columnLayout(mainLayout, q=1, ca=1):
# for each child, get it's type, then use that run an eval command to get that ui item's
#height and add it to the height variable
winHeight += eval('cmds.' + cmds.objectTypeUI(child) + '("' + child + '", q=1, h=1)')
# set the window height with the gathered height values
cmds.window('ToolUI', e=1, h=winHeight)
#################################################################################################################
#CREATE SELECTION LISTS# #CREATE SELECTION LISTS#
#################################################################################################################
def Name_DialogBox():
result = cmds.promptDialog(
title='Rename Object',
message='Enter Name:',
button=['OK', 'Cancel'],
defaultButton='OK',
cancelButton='Cancel',
dismissString='Cancel')
if result == 'OK':
InstanceName = cmds.promptDialog(query=True, text=True)
print InstanceName
###Create New Tab using text as name####
New_Tab_Set(InstanceName)
return InstanceName
class New_Tab_Set:
def __init__(self, InstanceName):
self.name = InstanceName
def Set_up_Tab(self):
self.tab1=cmds.frameLayout (width = 300, label = self.name, collapse = True, collapsable = True, marginWidth = 5, parent = child1);
self.cmds.text(label = self.name, align ='center')
self.tsL0 =cmds.textFieldButtonGrp(ed=False, adj=1,cal=(1,"left"),cw3=(10,100,25), cl3=("left","left","left") ,
buttonLabel='Root FK',bc = 'Create_Selection_Chains.select_joints_afk(left_arm_select)' )
self.gtF0 = tsL0
self.tsL1 = cmds.textFieldButtonGrp(ed=False, adj=1,cal=(1,"left"),cw3=(10,100,25), cl3=("left","left","left") ,
buttonLabel='Wrist IK',bc = 'Create_Selection_Chains.select_joints_aikw(left_arm_select)')
self.gtF1 = tsL1
self.tsL2 = cmds.textFieldButtonGrp(ed=False, adj=1,cal=(1,"left"),cw3=(10,100,25), cl3=("left","left","left") ,
buttonLabel='Elbow IK',bc = 'Create_Selection_Chains.select_joints_ikpv(left_arm_select)' )
self.gtF2 = tsL2
self.cmds.separator(h=5)
self.cmds.button(label= 'Remove' + self.name, command = 'Remove()', width=100)
self.cmds.separator(h=5)
我的问题是我不确定如何将新的选项卡内容添加到UI中
有人能给我指出正确的方向吗?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐