def build(self, light_obj, parent): """ Generates the frameLayout element, along with its children. Returns the element as a pymel object. """ self.element = pm.frameLayout( l=self.name, fn='smallBoldLabelFont', mh=5, bv=True, ebg=True, cll=True, cl=True, parent=parent ) col = pm.columnLayout() # light color selector slider = pm.colorSliderGrp( label='Light Color', rgb=light_obj.color.get(), cw=[self.labelWidth,(2,75),(3,0)], p=col ) pm.colorSliderGrp ( slider, edit=True, cc=lambda *args: light_obj.color.set(pm.colorSliderGrp(slider, q=True, rgbValue=True)) ) # intensity intensity = pm.floatFieldGrp( value=(light_obj.intensity.get(),0,0,0), label='Intensity', cw=[self.labelWidth,(2,75)], nf=1, p=col ) #self.element.redistribute() return self.element
def updateColor(sel, ui_obj, col=None): sel = convertSel(sel, sh=True) if col == 'R' or col == 'r': pm.colorSliderGrp(ui_obj, edit=True, rgb=(1, 0, 0)) elif col == 'G' or col == 'g': pm.colorSliderGrp(ui_obj, edit=True, rgb=(0, 1, 0)) elif col == 'B' or col == 'b': pm.colorSliderGrp(ui_obj, edit=True, rgb=(0, 0, 1)) elif col == 'K' or col == 'k': pm.colorSliderGrp(ui_obj, edit=True, rgb=(0, 0, 0)) col = pm.colorSliderGrp(ui_obj, query=True, rgb=True) cid = pm.colorSliderGrp(ui_obj, query=True, label=True) [obj.attr('vrayUserColor_' + cid).set(col) for obj in sel]
def multi_colorChange(attr, lightType, component, *args): value = pm.colorSliderGrp(component, q=True, rgb=True) sel_lights = pm.ls(sl=True, lights=True, dag=True) new_list = sortBy_type(sel_lights, lightType) for each in new_list: pm.setAttr(each+attr, value)
def multi_BasicSettings(): # Basic Settings pm.text(l='', h=5) multi_nameField = pm.textFieldGrp('hp3dNameField', l='Name', text='', cw=[2, 150], cc=fun.partial(multi_nameChange, 'hp3dNameField'), fcc=True) pm.rowColumnLayout(nc=2) pm.text(l='Basic Settings', w=75, al='left', en=False) pm.separator(w=marginWidth-75, h=14) pm.setParent(multiLight_layout) multi_color = pm.colorSliderGrp('hp3dColorSlider', label='Color', rgb=(1, 1, 1), cw=[3, 20], dc=fun.partial(multi_colorChange, '.color', 'all', 'hp3dColorSlider')) multi_intensity = pm.floatSliderGrp('hp3dIntensitySlider', label='Intensity', field=True, v=1.000, fmx=1000000000, pre=3, cw=[3, 20], dc=fun.partial(multi_floatChange, '.intensity', 'all', 'hp3dIntensitySlider')) # pm.text(l='', h=3) # GUI SPACER pm.rowColumnLayout(nc=2) pm.text(l='', w=142) # GUI SPACER global multi_illDefault_box multi_illDefault_box = pm.checkBox(l='Illuminates by Default', v=1, cc=multi_illDefault) pm.setParent(multiLight_layout) pm.rowColumnLayout(nc=3) pm.text(l='', w=142) # GUI SPACER multi_emitDiff_box = pm.checkBox('hp3dEmitDiffCheckbox', l='Emit Diffuse', v=1, w=120, cc=fun.partial(multi_checkboxChange, '.emitDiffuse', 'all', 'hp3dEmitDiffCheckbox')) multi_emitSpec_box = pm.checkBox('hp3dEmitSpecCheckbox', l='Emit Specular', v=1, cc=fun.partial(multi_checkboxChange, '.emitSpecular', 'all', 'hp3dEmitSpecCheckbox')) pm.setParent(multiLight_layout) pm.rowColumnLayout(nc=3) pm.text(l='Decay Rate', w=140, al='right') pm.text(l='', w=3) multi_decayRate_menu = pm.optionMenu('hp3dDecayRateMenu', bgc=primary_componentColor, cc=fun.partial(multi_menuChange, '.decayRate', 'not directional', 'hp3dDecayRateMenu')) pm.menuItem(l='No Decay', da=0) pm.menuItem(l='Linear', da=1) pm.menuItem(l='Quadratic', da=2) pm.menuItem(l='Cubic', da=3) pm.setParent(multiLight_layout)
def lookupTricode(*a): def _lookup(*a): _team = team.Team(pm.textFieldGrp(text, q=True, text=True)) try: _tri = _team.tricode except AttributeError: _tri = None if _tri: pm.text(tri, edit=True, label=' Tricode : ' + str(_team.tricode)) pm.colorSliderGrp(color_pri, edit=True, rgb=rendering.convertColor(_team.primary)) pm.colorSliderGrp(color_sec, edit=True, rgb=rendering.convertColor(_team.secondary)) else: pm.text(tri, edit=True, label=' Tricode : NOT FOUND') try: pm.deleteUI('lookupTricode') except: pass win = pm.window('lookupTricode', tlb=True, rtf=True, s=False, title='Lookup Team Tricode') lay = pm.verticalLayout(width=200, p=win) text = pm.textFieldGrp(label='Team Name : ', p=lay, cw2=(70, 130), cc=_lookup) tri = pm.text(label=' Tricode : ', p=lay, align='left') color_pri = pm.colorSliderGrp(label='Primary : ', rgb=(0, 0, 0), cw3=(70, 130, 0)) color_sec = pm.colorSliderGrp(label='Secondary : ', rgb=(0, 0, 0), cw3=(70, 130, 0)) lay.redistribute() win.show()
def cam_set_cam_attrs(cameraListDropdown, *args, **kwargs): ''' ''' camera = cameraListDropdown.getValue() focalLength = pm.floatField(prefix+'_floatField_focal_length', query=True, value=True) nearClip = pm.floatField(prefix+'_floatField_near_clip_plane', query=True, value=True) farClip = pm.floatField(prefix+'_floatField_far_clip_plane', query=True, value=True) overscan = pm.floatField(prefix+'_floatField_overscan', query=True, value=True) bkgdColor = pm.colorSliderGrp(prefix+'_colorSliderGrp_background_color', query=True, rgb=True ) topColor = pm.colorSliderGrp(prefix+'_colorSliderGrp_gradient_top', query=True, rgb=True ) bottomColor = pm.colorSliderGrp(prefix+'_colorSliderGrp_gradient_bottom', query=True, rgb=True ) pm.setAttr(camera+'.focalLength', focalLength) pm.setAttr(camera+'.nearClipPlane', nearClip) pm.setAttr(camera+'.farClipPlane', farClip) pm.setAttr(camera+'.overscan', overscan) pm.displayRGBColor('background', bkgdColor[0], bkgdColor[1], bkgdColor[2]) pm.displayRGBColor('backgroundTop', topColor[0], topColor[1], topColor[2]) pm.displayRGBColor('backgroundBottom', bottomColor[0], bottomColor[1], bottomColor[2])
def __init__(self, opts): self.opts = opts with pm.frameLayout(l='UV Snapshot:', cll=True, cl=False, bs='out'): with pm.columnLayout(width=162): self.path = pm.textFieldButtonGrp(l='Path:', bl='...', cw3=[28, 104, 32], bc=self.set_path) self.col = pm.colorSliderGrp(l='Color:', cw3=[32, 48, 74]) with pm.rowLayout(nc=2): self.of = pm.checkBox(l='Open File') self.aa = pm.checkBox(l='Anti-Alias', v=True) pm.button(l='Save Snapshot', width=156, c=self.snap_shot)
def _lookup(*a): _team = team.Team(pm.textFieldGrp(text, q=True, text=True)) try: _tri = _team.tricode except AttributeError: _tri = None if _tri: pm.text(tri, edit=True, label=' Tricode : ' + str(_team.tricode)) pm.colorSliderGrp(color_pri, edit=True, rgb=rendering.convertColor(_team.primary)) pm.colorSliderGrp(color_sec, edit=True, rgb=rendering.convertColor(_team.secondary)) else: pm.text(tri, edit=True, label=' Tricode : NOT FOUND')
def getUserColorAttr(sel, ui_obj, mat_id): sel = convertSel(sel, sh=True) col_list = set([]) outColor = (0, 0, 0) for obj in sel: try: col_list.add(obj.attr('vrayUserColor_matte' + mat_id).get()) except: pass if len(col_list) == 1: outColor = col_list.pop() elif len(col_list) > 1: outColor = (0.27, 0.27, 0.27) else: pm.warning('Error retrieving matte' + mat_id + ' color value.') pm.colorSliderGrp(ui_obj, edit=True, rgb=outColor)
def lcCameraToolsUI(dockable=False, *args, **kwargs): ''' ''' ci = 0 #color index iterator windowName = 'lcCameraTools' shelfCommand = 'import lct.src.lcCameraTools.lcCameraTools as lcCam\nreload(lcCam)\nlcCam.lcCameraToolsUI()' icon = basePath+'lcCameraTools.png' winWidth = 204 winHeight = 209 mainWindow = lcWindow(windowName=windowName, width=winWidth, height=winHeight, icon=icon, shelfCommand=shelfCommand, annotation=annotation, dockable=dockable, menuBar=True) mainWindow.create() pm.menu(l='Options', helpMenu=True) pm.menuItem(l='Reset Gradient Colors', command=lambda *args: cam_set_default_colors() ) # pm.columnLayout(prefix+'_columLayout_main') # pm.rowColumnLayout(nc=2, cw=([1,50], [2,150]) ) pm.text(l='Edit:', al='right') cameraListDropdown = pm.optionMenu(prefix+'_optionMenu_camera_list', bgc=colorWheel.getColorRGB(ci), w=150, h=25 ) ci+=1 cameraListDropdown.changeCommand(lambda *args: cam_get_cam_attrs(cameraListDropdown) ) pm.setParent(prefix+'_columLayout_main') # pm.rowColumnLayout(nc=2, cw=([1,125], [2,75]) ) pm.text(l='Focal Length:', al='right') pm.floatField(prefix+'_floatField_focal_length', min=0.0, v=0.0, pre=1, w=75, changeCommand=lambda *args: cam_set_cam_attrs(cameraListDropdown), receiveFocusCommand=lambda *args: cam_set_cam_attrs(cameraListDropdown) ) pm.text(l='Near Clip Plane:', al='right') pm.floatField(prefix+'_floatField_near_clip_plane', min=0.0, v=0.0, pre=4, w=75, changeCommand=lambda *args: cam_set_cam_attrs(cameraListDropdown), receiveFocusCommand=lambda *args: cam_set_cam_attrs(cameraListDropdown) ) pm.text(l='Far Clip Plane:', al='right') pm.floatField(prefix+'_floatField_far_clip_plane', min=0.0, v=0.0, pre=0, w=75, changeCommand=lambda *args: cam_set_cam_attrs(cameraListDropdown), receiveFocusCommand=lambda *args: cam_set_cam_attrs(cameraListDropdown) ) pm.text(l='Overscan:', al='right') pm.floatField(prefix+'_floatField_overscan', min=0.0, v=0.0, pre=3, w=75, changeCommand=lambda *args: cam_set_cam_attrs(cameraListDropdown), receiveFocusCommand=lambda *args: cam_set_cam_attrs(cameraListDropdown) ) pm.text(l='Background Color:', al='right') pm.colorSliderGrp(prefix+'_colorSliderGrp_background_color', cw1=50, rgb=(0.0,0.0,0.0), changeCommand=lambda *args: cam_set_cam_attrs(cameraListDropdown) ) pm.text(l='Gradient Top:', al='right') pm.colorSliderGrp(prefix+'_colorSliderGrp_gradient_top', cw1=50, rgb=(0.54,0.62,0.70), changeCommand=lambda *args: cam_set_cam_attrs(cameraListDropdown) ) pm.text(l='Gradient Bottom:', al='right') pm.colorSliderGrp(prefix+'_colorSliderGrp_gradient_bottom', cw1=50, rgb=(0.1,0.1,0.1), changeCommand=lambda *args: cam_set_cam_attrs(cameraListDropdown) ) pm.setParent(prefix+'_columLayout_main') # pm.rowColumnLayout(nc=2, cw=([1,175], [2,25]) ) pm.button(prefix+'_button_toggle_bkgd', l='Toggle Background', bgc=colorWheel.getColorRGB(ci), w=200, h=25, annotation='Toggle between flat color and gradient background', command=lambda *args: camera.toggleBackground() ) ci+=1 pm.iconTextButton(w=25, h=25, style='iconOnly', image=iconBasePath+'addToShelf.png', highlightImage=iconBasePath+'addToShelf_over.png', annotation='Add to Shelf', command=lambda *args: shelf.makeShelfButton('Toggle Camera Background', 'from lct.src.core.lcUtility import Camera as camera\ncamera.toggleBackground()', iconBasePath+'toggleBackground.png', "Toggle Camera's Viewport Background") ) # mainWindow.show() cam_populate_camera_list(cameraListDropdown) cam_get_cam_attrs(cameraListDropdown)
def cam_set_default_colors(*args, **kwargs): ''' ''' pm.displayRGBColor('background', 0.0, 0.0, 0.0) pm.displayRGBColor('backgroundTop', 0.54, 0.62, 0.70) pm.displayRGBColor('backgroundBottom', 0.1, 0.1, 0.1) bkgdColor = pm.displayRGBColor('background', query=True) topColor = pm.displayRGBColor('backgroundTop', query=True) bottomColor = pm.displayRGBColor('backgroundBottom', query=True) pm.colorSliderGrp(prefix+'_colorSliderGrp_background_color', edit=True, rgb=bkgdColor ) pm.colorSliderGrp(prefix+'_colorSliderGrp_gradient_top', edit=True, rgb=topColor ) pm.colorSliderGrp(prefix+'_colorSliderGrp_gradient_bottom', edit=True, rgb=bottomColor )
def __init__(self): ''' # the duplicate light class # has options for the replication of lights ''' self.layout = pm.columnLayout(adjustableColumn= True) pm.rowColumnLayout(numberOfColumns= 2,columnWidth= ([1, 250], [2, 250]), columnAlign= ([1, 'center'], [2, 'center'])) self.override_intensity = pm.checkBox(label= 'Override Intensity', changeCommand= self.override_intensity) self.int_slider = pm.intSliderGrp(field= True, enable= False, min=-500, max=500) self.override_color = pm.checkBox(label= 'Override Color', changeCommand= self.override_color) self.color_slider = pm.colorSliderGrp(rgb=(0, 0, 1), enable= False) self.xform = pm.checkBox(label= 'Apply Transforms') pm.button(label= 'Duplicate', command= self.duplicate)
def __init__(self): ''' # the duplicate light class # has options for the replication of lights ''' self.layout = pm.columnLayout(adjustableColumn=True) pm.rowColumnLayout(numberOfColumns=2, columnWidth=([1, 250], [2, 250]), columnAlign=([1, 'center'], [2, 'center'])) self.override_intensity = pm.checkBox( label='Override Intensity', changeCommand=self.override_intensity) self.int_slider = pm.intSliderGrp(field=True, enable=False, min=-500, max=500) self.override_color = pm.checkBox(label='Override Color', changeCommand=self.override_color) self.color_slider = pm.colorSliderGrp(rgb=(0, 0, 1), enable=False) self.xform = pm.checkBox(label='Apply Transforms') pm.button(label='Duplicate', command=self.duplicate)
def UIelement(self): box = pm.rowLayout(nc=4) # the color selection slider slider = pm.colorSliderGrp(label='matte' + str(self.matte) + ' ', rgb=self.defaultColor, cw=self.columnWidths) pm.colorSliderGrp(slider, edit=True, cc=lambda *args: setMatteColor(slider, getSel())) # RGB shortcut assignment buttons tritone = pm.gridLayout(numberOfColumns=4, cellWidthHeight=(17, 17), p=box) #red r = pm.button(l='', bgc=(.7, .1, .1), c=lambda *args: updateColor(getSel(), slider, 'r'), p=tritone) pm.popupMenu() kmenR = pm.menuItem( l='select', c=lambda *args: selectByColorAttr(slider, self.matte, 'r')) #green g = pm.button(l='', bgc=(.1, .7, .1), c=lambda *args: updateColor(getSel(), slider, 'g'), p=tritone) pm.popupMenu() kmenG = pm.menuItem( l='select', c=lambda *args: selectByColorAttr(slider, self.matte, 'g')) #blue b = pm.button(l='', bgc=(.1, .1, .7), c=lambda *args: updateColor(getSel(), slider, 'b'), p=tritone) pm.popupMenu() kmenB = pm.menuItem( l='select', c=lambda *args: selectByColorAttr(slider, self.matte, 'b')) #black k = pm.button(l='', bgc=(0.1, 0.1, 0.1), c=lambda *args: updateColor( convertSel(getSel(), sh=True), slider, 'k'), p=tritone) pm.popupMenu() kmenK = pm.menuItem( l='select', c=lambda *args: selectByColorAttr(slider, self.matte, 'k')) #Get current color pm.button( label='Get', width=35, p=box, c=lambda *args: getUserColorAttr(getSel(), slider, self.matte)) pm.setParent('..') pm.setParent('..') pm.separator(style='in', h=19, parent=box) return slider
figure = pm.polyCone(sx=1, sy=1.5, sz=0.5, r=radius, h=height) pm.move(x1, y1, z1, figure) i += 1 elif j == 2: figure = pm.polySphere(r=radius) pm.move(x1, y1, z1, figure) i += 1 elif j == 3: figure = pm.polyCylinder(r=radius, h=height) pm.move(x1, y1, z1, figure) i += 1 pm.select(figure) pm.rotate(angle, 0, 0, r=True) pm.select(clear=True) with pm.window(): with pm.autoLayout(): slider1 = pm.intSliderGrp(label='Number of Shapes', minValue=2, maxValue=60, field=True, value=2) options = pm.checkBoxGrp( numberOfCheckBoxes=4, label='Select shapes', labelArray4=['Torus', 'Cone', 'Sphere', 'Cylinder']) pm.button(label='Generate Shapes', command=create_shapes) slider2 = pm.colorSliderGrp(label='Set Color', rgb=(1, 0, 1)) button = pm.button(label='Change color', command=set_color)
def setAllMattes(matte_dict, sel): for k, v in matte_dict.iteritems(): col = pm.colorSliderGrp(v, query=True, rgb=True) cid = pm.colorSliderGrp(v, query=True, label=True) [obj.attr('vrayUserColor_' + cid).set(col) for obj in sel]
def setMatteColor(ui_obj, sel): sel = convertSel(sel, sh=True) col = pm.colorSliderGrp(ui_obj, query=True, rgb=True) cid = pm.colorSliderGrp(ui_obj, query=True, label=True) [obj.attr('vrayUserColor_' + cid).set(col) for obj in sel]
def makeHairUI(): shapeType = ['circle', 'triangle', 'square'] axisType = ['x', 'y', 'z'] mirrorType = ['world', 'local'] if pm.window('MakeHairUI', ex=True): pm.deleteUI('MakeHairUI', window=True) pm.windowPref('MakeHairUI', remove=True) pm.window('MakeHairUI', t="MakeHairUI") pm.frameLayout(label="Create Hair Parameters") pm.columnLayout(adjustableColumn=1) pm.rowColumnLayout(numberOfColumns=2, columnWidth=[(1, 90), (2, 100)]) pm.text(label="Name: ", align='right') hairNameUI = pm.textField(text="HairMesh#") pm.text(label="Material: ", align='right') matNameUI = pm.textField(text="SY_mtl_hairSG") pm.text(label="CreaseSet: ", align='right') hsSetNameUI = pm.textField(text="hairCrease") #pm.text(label="PointCreaseSet: ",align='right') #hpSetNameUI=pm.textField(text="hairPointCrease") pm.text(label="Length Divs: ", align='right') LDivsValUI = pm.intField(value=7, min=4) pm.text(label="Width Divs: ", align='right') WDivsValUI = pm.intField(value=4, min=4) pm.text(label="Segments: ", align='right') segmentValUI = pm.intField(value=4, min=2) pm.text(label="Width: ", align='right') segmentWidthUI = pm.floatField(value=1, min=0.01) pm.text(label="Delete Curves: ", align='right') DelCurveUI = pm.checkBox(label=" ", value=False) pm.text(label="Reverse: ", align='right') RevCurveUI = pm.checkBox(label=" ", value=False) pm.text(label="Control Type: ", align='right') cShapeOpUI = pm.optionMenu() for st in shapeType: pm.menuItem(label=st) pm.text(label="Mirror Type: ", align='right') mirrorOpUI = pm.optionMenu() for mt in mirrorType: pm.menuItem(label=mt) pm.text(label="Mirror Axis: ", align='right') axisOpUI = pm.optionMenu() for ax in axisType: pm.menuItem(label=ax) colorUI = pm.colorSliderGrp(label='', rgb=(0, 0, 1), co3=(0, 0, 0), cw3=(30, 60, 60), cl3=('left', 'center', 'right')) pm.button(label="Set", c=lambda *arg: setColor(colorUI.getRgbValue())) pm.button(label="SelectCtr", c=lambda *arg: selHair()) pm.popupMenu() pm.menuItem(label='Set pivot to root', c=lambda *arg: selHair(setPivot=True)) pm.menuItem(label='Set pivot to tip', c=lambda *arg: selHair(pivot=-1, setPivot=True)) pm.menuItem(label='Show all controls', c=lambda *arg: ToggleHairCtrlVis(state='show')) pm.menuItem(label='Hide all controls', c=lambda *arg: ToggleHairCtrlVis(state='hide')) pm.button(label="Create", c=lambda *arg: makeHairMesh(name=hairNameUI.getText(), mat=matNameUI.getText(), cSet=hsSetNameUI.getText(), reverse=RevCurveUI.getValue(), lengthDivs=LDivsValUI.getValue(), widthDivs=WDivsValUI.getValue(), Segments=segmentValUI.getValue(), width=segmentWidthUI.getValue(), curveDel=DelCurveUI.getValue(), cShape=cShapeOpUI.getValue())) pm.popupMenu() pm.menuItem( label='Rebuild', c=lambda *arg: selHair( rebuild=[True, LDivsValUI.getValue(), WDivsValUI.getValue()])) pm.menuItem( label='Rebuild also controls', c=lambda *arg: selHair( rebuild=[True, LDivsValUI.getValue(), WDivsValUI.getValue()], cShape=(True, cShapeOpUI.getValue(), segmentWidthUI.getValue()))) pm.button(label="Duplicate", c=lambda *arg: dupHairMesh()) pm.popupMenu() pm.menuItem(label='Mirror', c=lambda *arg: dupHairMesh(mirror=True, axis=axisOpUI.getValue(), space=mirrorOpUI.getValue())) pm.button(label="RemoveHair", c=lambda *arg: delHair()) pm.popupMenu() pm.menuItem(label='RemoveControl', c=lambda *arg: delHair(keepHair=True)) pm.menuItem(label='RemoveAllControl', c=lambda *arg: cleanHairMesh()) pm.setParent('..') pm.showWindow()
def uiCreate(self): self.onCloseClicked() self.window = pm.window(WIN_NAME, title='PyMel Window', maximizeButton=False) with self.window: with pm.formLayout() as uiLAY_mainForm: with pm.scrollLayout( 'uiLAY_mainScroll', childResizable=True) as self.uiLAY_mainScroll: with pm.columnLayout(adjustableColumn=True): with self.uiCreateFrame( 'uiLAY_frameCheckBoxes', 'Check Boxes (PMCheckBox)' ) as self.uiLAY_frameCheckBoxes: with pm.columnLayout(): pm.separator(style='none', height=2) with pm.rowLayout(numberOfColumns=3): pm.separator(width=140, style='none') self.uiCHK_test1 = pm.checkBox( 'uiCHK_test1', label='test1') self.uiCHK_test2 = pm.checkBox( 'uiCHK_test2', label='test2') with self.uiCreateFrame( 'uiLAY_frameCheckBoxGroups', 'Check Box Groups (PMCheckBoxGrp#)' ) as self.uiLAY_frameCheckBoxGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiCHKGRP_test1 = pm.checkBoxGrp( 'uiCHKGRP_test1', numberOfCheckBoxes=1, label='PMCheckBoxGrp1', label1='test1') self.uiCHKGRP_test2 = pm.checkBoxGrp( 'uiCHKGRP_test2', numberOfCheckBoxes=2, label='PMCheckBoxGrp2', labelArray2=('test1', 'test2')) self.uiCHKGRP_test3 = pm.checkBoxGrp( 'uiCHKGRP_test3', numberOfCheckBoxes=3, label='PMCheckBoxGrp3', labelArray3=('test1', 'test2', 'test3')) self.uiCHKGRP_test4 = pm.checkBoxGrp( 'uiCHKGRP_test4', numberOfCheckBoxes=4, label='PMCheckBoxGrp4', labelArray4=('test1', 'test2', 'test3', 'test4')) with self.uiCreateFrame( 'uiLAY_frameColorSliders', 'Color Slider Groups (PMColorSliderGrp)' ) as self.uiLAY_frameColorSliders: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiCLRGRP_test1 = pm.colorSliderGrp( 'uiCLRGRP_test1', label='test1') self.uiCLRGRP_test2 = pm.colorSliderGrp( 'uiCLRGRP_test2', label='test2') with self.uiCreateFrame( 'uiLAY_frameFloatFields', 'Float Fields (PMFloatField)' ) as self.uiLAY_frameFloatFields: with pm.columnLayout(): pm.separator(style='none', height=2) with pm.rowLayout(numberOfColumns=3): pm.separator(width=140, style='none') self.uiFLF_test1 = pm.floatField( 'uiFLF_test1') self.uiFLF_test2 = pm.floatField( 'uiFLF_test2') with self.uiCreateFrame( 'uiLAY_frameFloatFieldGroups', 'Float Field Groups (PMFloatFieldGrp#)' ) as self.uiLAY_frameFloatFieldGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiFLFGRP_test1 = pm.floatFieldGrp( 'uiFLFGRP_test1', numberOfFields=1, label='PMFloatFieldGrp1') self.uiFLFGRP_test2 = pm.floatFieldGrp( 'uiFLFGRP_test2', numberOfFields=2, label='PMFloatFieldGrp2') self.uiFLFGRP_test3 = pm.floatFieldGrp( 'uiFLFGRP_test3', numberOfFields=3, label='PMFloatFieldGrp3') self.uiFLFGRP_test4 = pm.floatFieldGrp( 'uiFLFGRP_test4', numberOfFields=4, label='PMFloatFieldGrp4') with self.uiCreateFrame( 'uiLAY_frameFloatScrollBars', 'Float Scroll Bars (PMFloatScrollBar)' ) as self.uiLAY_frameFloatScrollBars: with pm.columnLayout(adjustableColumn=True): pm.separator(style='none', height=2) self.uiFLSCRL_test1 = pm.floatScrollBar( 'uiFLSCRL_test1') self.uiFLSCRL_test2 = pm.floatScrollBar( 'uiFLSCRL_test2') with self.uiCreateFrame( 'uiLAY_frameFloatSliders', 'Float Sliders (PMFloatSlider)' ) as self.uiLAY_frameFloatSliders: with pm.columnLayout(adjustableColumn=True): pm.separator(style='none', height=2) self.uiFLTSLD_test1 = pm.floatSlider( 'uiFLTSLD_test1') self.uiFLTSLD_test2 = pm.floatSlider( 'uiFLTSLD_test2') with self.uiCreateFrame( 'uiLAY_frameFloatSliderGroups', 'Float Slider Groups (PMFloatSliderGrp)' ) as self.uiLAY_frameFloatSliderGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiFLSGRP_test1 = pm.floatSliderGrp( 'uiFLSGRP_test1', label='test1', field=True) self.uiFLSGRP_test2 = pm.floatSliderGrp( 'uiFLSGRP_test2', label='test2', field=True) with self.uiCreateFrame( 'uiLAY_frameIconTextCheckBoxes', 'Icon Text Check Boxes (PMIconTextCheckBox)' ) as self.uiLAY_frameIconTextCheckBoxes: with pm.columnLayout(): with pm.rowLayout(numberOfColumns=3): pm.separator(style='none', width=140) self.uiITCHK_test1 = pm.iconTextCheckBox( 'uiITCHK_test1', style='iconAndTextHorizontal', label='cube', image1='cube') self.uiITCHK_test2 = pm.iconTextCheckBox( 'uiITCHK_test2', style='iconAndTextHorizontal', label='cone', image1='cone') with self.uiCreateFrame( 'uiLAY_frameIconTextRadioButtons', 'Icon Text Radio Buttons (PMIconTextRadioButton)' ) as self.uiLAY_frameIconTextRadioButtons: with pm.columnLayout(): with pm.rowLayout(numberOfColumns=4): pm.separator(style='none', width=140) pm.iconTextRadioCollection() self.uiITRAD_test1 = pm.iconTextRadioButton( 'uiITRAD_test1', style='iconAndTextHorizontal', label='cube', image1='cube') self.uiITRAD_test2 = pm.iconTextRadioButton( 'uiITRAD_test2', style='iconAndTextHorizontal', label='cone', image1='cone') self.uiITRAD_test3 = pm.iconTextRadioButton( 'uiITRAD_test3', style='iconAndTextHorizontal', label='torus', image1='torus') with self.uiCreateFrame( 'uiLAY_frameIconTextScrollLists', 'Icon Text Scroll Lists (PMIconTextScrollList)' ) as self.uiLAY_frameIconTextScrollLists: with pm.columnLayout(): with pm.rowLayout(numberOfColumns=3): pm.separator(style='none', width=140) self.uiITSLST_test1 = pm.iconTextScrollList( 'uiITSLST_test1', allowMultiSelection=True, append=('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten')) self.uiITSLST_test2 = pm.iconTextScrollList( 'uiITSLST_test2', allowMultiSelection=True, append=('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten')) with self.uiCreateFrame('uiLAY_frameIntFields', 'Int Fields (PMIntField)' ) as self.uiLAY_frameIntFields: with pm.columnLayout(): pm.separator(style='none', height=2) with pm.rowLayout(numberOfColumns=3): pm.separator(width=140, style='none') self.uiINF_test1 = pm.intField( 'uiINF_test1') self.uiINF_test2 = pm.intField( 'uiINF_test2') with self.uiCreateFrame( 'uiLAY_frameIntFieldGroups', 'Int Field Groups (PMIntFieldGrp#)' ) as self.uiLAY_frameIntFieldGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiINFGRP_test1 = pm.intFieldGrp( 'uiINFGRP_test1', numberOfFields=1, label='PMIntFieldGrp1') self.uiINFGRP_test2 = pm.intFieldGrp( 'uiINFGRP_test2', numberOfFields=2, label='PMIntFieldGrp2') self.uiINFGRP_test3 = pm.intFieldGrp( 'uiINFGRP_test3', numberOfFields=3, label='PMIntFieldGrp3') self.uiINFGRP_test4 = pm.intFieldGrp( 'uiINFGRP_test4', numberOfFields=4, label='PMIntFieldGrp4') with self.uiCreateFrame( 'uiLAY_frameIntScrollBars', 'Int Scroll Bars (PMIntScrollBar)' ) as self.uiLAY_frameIntScrollBars: with pm.columnLayout(adjustableColumn=True): pm.separator(style='none', height=2) self.uiINSCRL_test1 = pm.intScrollBar( 'uiINSCRL_test1') self.uiINSCRL_test2 = pm.intScrollBar( 'uiINSCRL_test2') with self.uiCreateFrame( 'uiLAY_frameIntSliders', 'Int Sliders (PMIntSlider)' ) as self.uiLAY_frameIntSliders: with pm.columnLayout(adjustableColumn=True): pm.separator(style='none', height=2) self.uiINTSLD_test1 = pm.intSlider( 'uiINTSLD_test1') self.uiINTSLD_test2 = pm.intSlider( 'uiINTSLD_test2') with self.uiCreateFrame( 'uiLAY_frameIntSliderGroups', 'Int Slider Groups (PMIntSliderGrp)' ) as self.uiLAY_frameIntSliderGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiINSGRP_test1 = pm.intSliderGrp( 'uiINSGRP_test1', label='test1', field=True) self.uiINSGRP_test2 = pm.intSliderGrp( 'uiINSGRP_test2', label='test2', field=True) with self.uiCreateFrame( 'uiLAY_frameOptionMenus', 'Option Menus (PMOptionMenu)' ) as self.uiLAY_frameOptionMenus: with pm.columnLayout(): pm.separator(style='none', height=2) with pm.rowLayout(numberOfColumns=3): pm.separator(width=110, style='none') self.uiOPTMNU_test1 = pm.optionMenu( 'uiOPTMNU_test1', label='test1') pm.menuItem(label='one') pm.menuItem(label='two') pm.menuItem(label='three') self.uiOPTMNU_test2 = pm.optionMenu( 'uiOPTMNU_test2', label='test2') pm.menuItem(label='four') pm.menuItem(label='five') pm.menuItem(label='six') with self.uiCreateFrame( 'uiLAY_frameOptionMenuGroups', 'Option Menus Groups (PMOptionMenuGrp)' ) as self.uiLAY_frameOptionMenuGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiOPMGRP_test1 = pm.optionMenuGrp( 'uiOPMGRP_test1', label='test1', extraLabel='extraLabel') pm.menuItem(label='one') pm.menuItem(label='two') pm.menuItem(label='three') self.uiOPMGRP_test2 = pm.optionMenuGrp( 'uiOPMGRP_test2', label='test2', extraLabel='extraLabel') pm.menuItem(label='four') pm.menuItem(label='five') pm.menuItem(label='six') with self.uiCreateFrame( 'uiLAY_frameRadioButtons', 'Radio Buttons (PMRadioButton)' ) as self.uiLAY_frameRadioButtons: with pm.columnLayout(): with pm.rowLayout(numberOfColumns=4): pm.separator(style='none', width=140) pm.radioCollection() self.uiRAD_test1 = pm.radioButton( 'uiRAD_test1', label='test1') self.uiRAD_test2 = pm.radioButton( 'uiRAD_test2', label='test2') self.uiRAD_test3 = pm.radioButton( 'uiRAD_test3', label='test3') with self.uiCreateFrame( 'uiLAY_frameRadioButtonGroups', 'Radio Button Groups (PMRadioButtonGrp#)' ) as self.uiLAY_frameRadioButtonGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiRADGRP_test1 = pm.radioButtonGrp( 'uiRADGRP_test1', numberOfRadioButtons=1, label='PMRadioButtonGrp1', label1='test1') self.uiRADGRP_test2 = pm.radioButtonGrp( 'uiRADGRP_test2', numberOfRadioButtons=2, label='PMRadioButtonGrp2', labelArray2=('test1', 'test2')) self.uiRADGRP_test3 = pm.radioButtonGrp( 'uiRADGRP_test3', numberOfRadioButtons=3, label='PMRadioButtonGrp3', labelArray3=('test1', 'test2', 'test3')) self.uiRADGRP_test4 = pm.radioButtonGrp( 'uiRADGRP_test4', numberOfRadioButtons=4, label='PMRadioButtonGrp4', labelArray4=('test1', 'test2', 'test3', 'test4')) with self.uiCreateFrame( 'uiLAY_frameSymbolCheckBoxes', 'Symbol Check Boxes (PMSymbolCheckBox)' ) as self.uiLAY_frameSymbolCheckBoxes: with pm.columnLayout(): with pm.rowLayout(numberOfColumns=3): pm.separator(style='none', width=140) self.uiSYMCHK_test1 = pm.symbolCheckBox( 'uiSYMCHK_test1', image='polyCube') self.uiSYMCHK_test2 = pm.symbolCheckBox( 'uiSYMCHK_test2', image='polyCone') with self.uiCreateFrame( 'uiLAY_frameScriptTables', 'Script Tables (PMScriptTable)' ) as self.uiLAY_frameScriptTables: with pm.columnLayout(): with pm.rowLayout(numberOfColumns=3): pm.separator(style='none', width=140) self.uiSCRTBL_test1 = pm.scriptTable( 'uiSCRTBL_test1', selectionMode=3, rows=4, columns=2) self.uiSCRTBL_test2 = pm.scriptTable( 'uiSCRTBL_test2', selectionMode=3, rows=4, columns=2) with self.uiCreateFrame( 'uiLAY_frameScrollField', 'Scroll Field (PMScrollField)' ) as self.uiLAY_frameScrollField: with pm.columnLayout(): with pm.rowLayout(numberOfColumns=3): pm.separator(style='none', width=140) self.uiSCRFLD_test1 = pm.scrollField( 'uiSCRFLD_test1', wordWrap=True) self.uiSCRFLD_test2 = pm.scrollField( 'uiSCRFLD_test2', wordWrap=True) with self.uiCreateFrame( 'uiLAY_frameShelfTabLayout', 'Shelf Tab Layout (PMShelfTabLayout)' ) as self.uiLAY_frameShelfTabLayout: with pm.columnLayout(adjustableColumn=True): with pm.shelfTabLayout( 'uiSHLTAB_test1' ) as self.uiSHLTAB_test1: with pm.shelfLayout('test1'): pass with pm.shelfLayout('test2'): pass with pm.shelfLayout('test3'): pass with pm.shelfTabLayout( 'uiSHLTAB_test2' ) as self.uiSHLTAB_test2: with pm.shelfLayout('test4'): pass with pm.shelfLayout('test5'): pass with pm.shelfLayout('test6'): pass with self.uiCreateFrame('uiLAY_frameTabLayout', 'Tab Layout (PMTabLayout)' ) as self.uiLAY_frameTabLayout: with pm.columnLayout(adjustableColumn=True): with pm.tabLayout( 'uiTAB_test1') as self.uiTAB_test1: with pm.rowLayout(numberOfColumns=1 ) as uiLAY_tabRow1: pass with pm.rowLayout(numberOfColumns=1 ) as uiLAY_tabRow2: pass with pm.rowLayout(numberOfColumns=1 ) as uiLAY_tabRow3: pass pm.tabLayout(self.uiTAB_test1, edit=True, tabLabel=( (uiLAY_tabRow1, 'test1'), (uiLAY_tabRow2, 'test2'), (uiLAY_tabRow3, 'test3'), )) with pm.tabLayout( 'uiTAB_test2') as self.uiTAB_test2: with pm.rowLayout(numberOfColumns=1 ) as uiLAY_tabRow4: pass with pm.rowLayout(numberOfColumns=1 ) as uiLAY_tabRow5: pass with pm.rowLayout(numberOfColumns=1 ) as uiLAY_tabRow6: pass pm.tabLayout(self.uiTAB_test2, edit=True, tabLabel=( (uiLAY_tabRow4, 'test4'), (uiLAY_tabRow5, 'test5'), (uiLAY_tabRow6, 'test6'), )) with self.uiCreateFrame( 'uiLAY_frameTextFields', 'Text Fields (PMTextField)' ) as self.uiLAY_frameTextFields: with pm.columnLayout(): pm.separator(style='none', height=2) with pm.rowLayout(numberOfColumns=3): pm.separator(width=140, style='none') self.uiTXT_test1 = pm.textField( 'uiTXT_test1') self.uiTXT_test2 = pm.textField( 'uiTXT_test2') with self.uiCreateFrame( 'uiLAY_frameTextFieldButtonGroups', 'Text Field Button Groups (PMTextFieldButtonGrp)' ) as self.uiLAY_frameTextFieldButtonGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiTXBTGR_test1 = pm.textFieldButtonGrp( 'uiTXBTGR_test1', label='test1', buttonLabel='button1') self.uiTXBTGR_test2 = pm.textFieldButtonGrp( 'uiTXBTGR_test2', label='test2', buttonLabel='button2') with self.uiCreateFrame( 'uiLAY_frameTextFieldGroups', 'Text Field Groups (PMTextFieldGrp)' ) as self.uiLAY_frameTextFieldGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiTXTGRP_test1 = pm.textFieldGrp( 'uiTXTGRP_test1', label='test1') self.uiTXTGRP_test2 = pm.textFieldGrp( 'uiTXTGRP_test2', label='test2') with self.uiCreateFrame( 'uiLAY_frameTextScrollLists', 'Text Scroll Lists (PMTextScrollList)' ) as self.uiLAY_frameTextScrollLists: with pm.columnLayout(): with pm.rowLayout(numberOfColumns=3): pm.separator(style='none', width=140) self.uiTXTLST_test1 = pm.textScrollList( 'uiTXTLST_test1', allowMultiSelection=True, append=('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten')) self.uiTXTLST_test2 = pm.textScrollList( 'uiTXTLST_test2', allowMultiSelection=True, append=('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten')) self.uiBTN_savePrefs = pm.button( label='Save Prefs', height=MAIN_BUTTONS_HEIGHT, command=self.onSavePrefsClicked) self.uiBTN_loadPrefs = pm.button( label='Load Prefs', height=MAIN_BUTTONS_HEIGHT, command=self.onLoadPrefsClicked) self.uiBTN_resetPrefs = pm.button( label='Reset Prefs', height=MAIN_BUTTONS_HEIGHT, command=self.onResetPrefsClicked) uiLAY_mainForm.attachForm(self.uiLAY_mainScroll, 'top', 2) uiLAY_mainForm.attachForm(self.uiLAY_mainScroll, 'left', 2) uiLAY_mainForm.attachForm(self.uiLAY_mainScroll, 'right', 2) uiLAY_mainForm.attachControl(self.uiLAY_mainScroll, 'bottom', 2, self.uiBTN_savePrefs) uiLAY_mainForm.attachNone(self.uiBTN_savePrefs, 'top') uiLAY_mainForm.attachForm(self.uiBTN_savePrefs, 'left', 2) uiLAY_mainForm.attachPosition(self.uiBTN_savePrefs, 'right', 2, 33) uiLAY_mainForm.attachForm(self.uiBTN_savePrefs, 'bottom', 2) uiLAY_mainForm.attachNone(self.uiBTN_loadPrefs, 'top') uiLAY_mainForm.attachPosition(self.uiBTN_loadPrefs, 'left', 2, 33) uiLAY_mainForm.attachPosition(self.uiBTN_loadPrefs, 'right', 2, 66) uiLAY_mainForm.attachForm(self.uiBTN_loadPrefs, 'bottom', 2) uiLAY_mainForm.attachNone(self.uiBTN_resetPrefs, 'top') uiLAY_mainForm.attachPosition(self.uiBTN_resetPrefs, 'left', 2, 66) uiLAY_mainForm.attachForm(self.uiBTN_resetPrefs, 'right', 2) uiLAY_mainForm.attachForm(self.uiBTN_resetPrefs, 'bottom', 2) self.window.setTitle(self.window.__class__)
def lcCamUtilUI(dockable=False, asChildLayout=False, *args, **kwargs): """ """ ci = 0 # color index iterator windowName = fileName shelfCommand = 'import lct.src.{0}.{0} as {1}\nreload({1})\n{1}.{0}UI()'.format( windowName, prefix) commandString = 'import lct.src.{0}.{0} as {1}\nreload({1})\n{1}.{0}UI(asChildLayout=True)'.format( windowName, prefix) icon = os.path.join(basePath, '{}.png'.format(fileName)) winWidth = 205 winHeight = height if pm.window(windowName, ex=True): pm.deleteUI(windowName) if not asChildLayout: lcUI.UI.lcToolbox_child_popout(prefix + '_columnLayout_main', windowName, height, commandString, iconPath, lct_cfg) mainWindow = lcUI.lcWindow(prefix=prefix, windowName=windowName, width=winWidth, height=winHeight, icon=icon, shelfCommand=shelfCommand, annotation=annotation, dockable=dockable, menuBar=True) mainWindow.create() # UI HERE pm.columnLayout(prefix + '_columnLayout_main') w = 200 pm.text(l="Values update for active camera", w=w, h=25, align='center', font='boldLabelFont') pm.separator(style='in', h=3, w=winWidth) pm.rowColumnLayout(prefix + '_rowColumnMain', nc=2, cw=([1, 150], [2, 50])) pm.text(l="Camera Focal Length", w=150) ff_focal = pm.floatField( v=35, min=2.5, pre=1, step=1.0, w=50, enterCommand=lambda *args: set_camera_attrs(ui_elements), dragCommand=lambda *args: set_camera_attrs(ui_elements), rfc=lambda *args: get_camera_attrs(ui_elements)) pm.text(l="Camera Near Clip Plane", w=150) ff_near = pm.floatField( v=0.100, min=0.001, pre=3, step=0.001, w=50, enterCommand=lambda *args: set_camera_attrs(ui_elements), dragCommand=lambda *args: set_camera_attrs(ui_elements), rfc=lambda *args: get_camera_attrs(ui_elements)) pm.text(l="Camera Far Clip Plane", w=150) ff_far = pm.floatField( v=1000.0, min=0.001, pre=0, step=10.0, w=50, enterCommand=lambda *args: set_camera_attrs(ui_elements), dragCommand=lambda *args: set_camera_attrs(ui_elements), rfc=lambda *args: get_camera_attrs(ui_elements)) pm.text(l="Camera Overscan", w=150) ff_overscan = pm.floatField( v=1.0, min=0.001, pre=3, step=0.01, w=50, enterCommand=lambda *args: set_camera_attrs(ui_elements), dragCommand=lambda *args: set_camera_attrs(ui_elements), rfc=lambda *args: get_camera_attrs(ui_elements)) pm.text(l="Camera Background Color", w=150) csg_background = pm.colorSliderGrp( cw1=50, rgb=(0.36, 0.36, 0.36), changeCommand=lambda *args: set_camera_attrs(ui_elements)) pm.text(l="Camera Gradient Top", w=150) csg_top = pm.colorSliderGrp( cw1=50, rgb=(0.54, 0.62, 0.7), changeCommand=lambda *args: set_camera_attrs(ui_elements)) pm.text(l="Camera Gradient Bottom", w=150) csg_bottom = pm.colorSliderGrp( cw1=50, rgb=(0.5, 0.5, 0.5), changeCommand=lambda *args: set_camera_attrs(ui_elements)) pm.setParent('..') pm.button(l="Toggle Background Gradient", w=winWidth, h=32, al='center', bgc=(0.75, 0.5, 0.2), command=lambda *args: lcCamera.Camera.toggle_background()) ui_elements = [ ff_focal, ff_near, ff_far, ff_overscan, csg_background, csg_top, csg_bottom ] # Show Window if not asChildLayout: mainWindow.show() # force height and width pm.window(mainWindow.mainWindow, edit=True, h=winHeight, w=winWidth) else: pm.separator(style='none', h=5) pm.setParent('..') pm.setParent('..') # edit menus optionsMenu, helpMenu = lcUI.UI.lcToolbox_child_menu_edit( asChildLayout, windowName) # restore interface from lct_cfg # misc get_camera_attrs(ui_elements) set_camera_attrs(ui_elements)
def uiCreate(self): self.onCloseClicked() self.window = pm.window( WIN_NAME, title='PyMel Window', maximizeButton=False ) with self.window: with pm.formLayout() as uiLAY_mainForm: with pm.scrollLayout('uiLAY_mainScroll', childResizable=True) as self.uiLAY_mainScroll: with pm.columnLayout(adjustableColumn=True): with self.uiCreateFrame('uiLAY_frameCheckBoxes', 'Check Boxes (PMCheckBox)') as self.uiLAY_frameCheckBoxes: with pm.columnLayout(): pm.separator(style='none', height=2) with pm.rowLayout(numberOfColumns=3): pm.separator(width=140, style='none') self.uiCHK_test1 = pm.checkBox('uiCHK_test1', label='test1') self.uiCHK_test2 = pm.checkBox('uiCHK_test2', label='test2') with self.uiCreateFrame('uiLAY_frameCheckBoxGroups', 'Check Box Groups (PMCheckBoxGrp#)') as self.uiLAY_frameCheckBoxGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiCHKGRP_test1 = pm.checkBoxGrp( 'uiCHKGRP_test1', numberOfCheckBoxes=1, label='PMCheckBoxGrp1', label1='test1' ) self.uiCHKGRP_test2 = pm.checkBoxGrp( 'uiCHKGRP_test2', numberOfCheckBoxes=2, label='PMCheckBoxGrp2', labelArray2=('test1', 'test2') ) self.uiCHKGRP_test3 = pm.checkBoxGrp( 'uiCHKGRP_test3', numberOfCheckBoxes=3, label='PMCheckBoxGrp3', labelArray3=('test1', 'test2', 'test3') ) self.uiCHKGRP_test4 = pm.checkBoxGrp( 'uiCHKGRP_test4', numberOfCheckBoxes=4, label='PMCheckBoxGrp4', labelArray4=('test1', 'test2', 'test3', 'test4') ) with self.uiCreateFrame('uiLAY_frameColorSliders', 'Color Slider Groups (PMColorSliderGrp)') as self.uiLAY_frameColorSliders: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiCLRGRP_test1 = pm.colorSliderGrp( 'uiCLRGRP_test1', label='test1' ) self.uiCLRGRP_test2 = pm.colorSliderGrp( 'uiCLRGRP_test2', label='test2' ) with self.uiCreateFrame('uiLAY_frameFloatFields', 'Float Fields (PMFloatField)') as self.uiLAY_frameFloatFields: with pm.columnLayout(): pm.separator(style='none', height=2) with pm.rowLayout(numberOfColumns=3): pm.separator(width=140, style='none') self.uiFLF_test1 = pm.floatField('uiFLF_test1') self.uiFLF_test2 = pm.floatField('uiFLF_test2') with self.uiCreateFrame('uiLAY_frameFloatFieldGroups', 'Float Field Groups (PMFloatFieldGrp#)') as self.uiLAY_frameFloatFieldGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiFLFGRP_test1 = pm.floatFieldGrp( 'uiFLFGRP_test1', numberOfFields=1, label='PMFloatFieldGrp1' ) self.uiFLFGRP_test2 = pm.floatFieldGrp( 'uiFLFGRP_test2', numberOfFields=2, label='PMFloatFieldGrp2' ) self.uiFLFGRP_test3 = pm.floatFieldGrp( 'uiFLFGRP_test3', numberOfFields=3, label='PMFloatFieldGrp3' ) self.uiFLFGRP_test4 = pm.floatFieldGrp( 'uiFLFGRP_test4', numberOfFields=4, label='PMFloatFieldGrp4' ) with self.uiCreateFrame('uiLAY_frameFloatScrollBars', 'Float Scroll Bars (PMFloatScrollBar)') as self.uiLAY_frameFloatScrollBars: with pm.columnLayout(adjustableColumn=True): pm.separator(style='none', height=2) self.uiFLSCRL_test1 = pm.floatScrollBar('uiFLSCRL_test1') self.uiFLSCRL_test2 = pm.floatScrollBar('uiFLSCRL_test2') with self.uiCreateFrame('uiLAY_frameFloatSliders', 'Float Sliders (PMFloatSlider)') as self.uiLAY_frameFloatSliders: with pm.columnLayout(adjustableColumn=True): pm.separator(style='none', height=2) self.uiFLTSLD_test1 = pm.floatSlider('uiFLTSLD_test1') self.uiFLTSLD_test2 = pm.floatSlider('uiFLTSLD_test2') with self.uiCreateFrame('uiLAY_frameFloatSliderGroups', 'Float Slider Groups (PMFloatSliderGrp)') as self.uiLAY_frameFloatSliderGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiFLSGRP_test1 = pm.floatSliderGrp( 'uiFLSGRP_test1', label='test1', field=True ) self.uiFLSGRP_test2 = pm.floatSliderGrp( 'uiFLSGRP_test2', label='test2', field=True ) with self.uiCreateFrame('uiLAY_frameIconTextCheckBoxes', 'Icon Text Check Boxes (PMIconTextCheckBox)') as self.uiLAY_frameIconTextCheckBoxes: with pm.columnLayout(): with pm.rowLayout(numberOfColumns=3): pm.separator(style='none', width=140) self.uiITCHK_test1 = pm.iconTextCheckBox( 'uiITCHK_test1', style='iconAndTextHorizontal', label='cube', image1='cube' ) self.uiITCHK_test2 = pm.iconTextCheckBox( 'uiITCHK_test2', style='iconAndTextHorizontal', label='cone', image1='cone' ) with self.uiCreateFrame('uiLAY_frameIconTextRadioButtons', 'Icon Text Radio Buttons (PMIconTextRadioButton)') as self.uiLAY_frameIconTextRadioButtons: with pm.columnLayout(): with pm.rowLayout(numberOfColumns=4): pm.separator(style='none', width=140) pm.iconTextRadioCollection() self.uiITRAD_test1 = pm.iconTextRadioButton( 'uiITRAD_test1', style='iconAndTextHorizontal', label='cube', image1='cube' ) self.uiITRAD_test2 = pm.iconTextRadioButton( 'uiITRAD_test2', style='iconAndTextHorizontal', label='cone', image1='cone' ) self.uiITRAD_test3 = pm.iconTextRadioButton( 'uiITRAD_test3', style='iconAndTextHorizontal', label='torus', image1='torus' ) with self.uiCreateFrame('uiLAY_frameIconTextScrollLists', 'Icon Text Scroll Lists (PMIconTextScrollList)') as self.uiLAY_frameIconTextScrollLists: with pm.columnLayout(): with pm.rowLayout(numberOfColumns=3): pm.separator(style='none', width=140) self.uiITSLST_test1 = pm.iconTextScrollList( 'uiITSLST_test1', allowMultiSelection=True, append=('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten') ) self.uiITSLST_test2 = pm.iconTextScrollList( 'uiITSLST_test2', allowMultiSelection=True, append=('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten') ) with self.uiCreateFrame('uiLAY_frameIntFields', 'Int Fields (PMIntField)') as self.uiLAY_frameIntFields: with pm.columnLayout(): pm.separator(style='none', height=2) with pm.rowLayout(numberOfColumns=3): pm.separator(width=140, style='none') self.uiINF_test1 = pm.intField('uiINF_test1') self.uiINF_test2 = pm.intField('uiINF_test2') with self.uiCreateFrame('uiLAY_frameIntFieldGroups', 'Int Field Groups (PMIntFieldGrp#)') as self.uiLAY_frameIntFieldGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiINFGRP_test1 = pm.intFieldGrp( 'uiINFGRP_test1', numberOfFields=1, label='PMIntFieldGrp1' ) self.uiINFGRP_test2 = pm.intFieldGrp( 'uiINFGRP_test2', numberOfFields=2, label='PMIntFieldGrp2' ) self.uiINFGRP_test3 = pm.intFieldGrp( 'uiINFGRP_test3', numberOfFields=3, label='PMIntFieldGrp3' ) self.uiINFGRP_test4 = pm.intFieldGrp( 'uiINFGRP_test4', numberOfFields=4, label='PMIntFieldGrp4' ) with self.uiCreateFrame('uiLAY_frameIntScrollBars', 'Int Scroll Bars (PMIntScrollBar)') as self.uiLAY_frameIntScrollBars: with pm.columnLayout(adjustableColumn=True): pm.separator(style='none', height=2) self.uiINSCRL_test1 = pm.intScrollBar('uiINSCRL_test1') self.uiINSCRL_test2 = pm.intScrollBar('uiINSCRL_test2') with self.uiCreateFrame('uiLAY_frameIntSliders', 'Int Sliders (PMIntSlider)') as self.uiLAY_frameIntSliders: with pm.columnLayout(adjustableColumn=True): pm.separator(style='none', height=2) self.uiINTSLD_test1 = pm.intSlider('uiINTSLD_test1') self.uiINTSLD_test2 = pm.intSlider('uiINTSLD_test2') with self.uiCreateFrame('uiLAY_frameIntSliderGroups', 'Int Slider Groups (PMIntSliderGrp)') as self.uiLAY_frameIntSliderGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiINSGRP_test1 = pm.intSliderGrp( 'uiINSGRP_test1', label='test1', field=True ) self.uiINSGRP_test2 = pm.intSliderGrp( 'uiINSGRP_test2', label='test2', field=True ) with self.uiCreateFrame('uiLAY_frameOptionMenus', 'Option Menus (PMOptionMenu)') as self.uiLAY_frameOptionMenus: with pm.columnLayout(): pm.separator(style='none', height=2) with pm.rowLayout(numberOfColumns=3): pm.separator(width=110, style='none') self.uiOPTMNU_test1 = pm.optionMenu('uiOPTMNU_test1', label='test1') pm.menuItem(label='one') pm.menuItem(label='two') pm.menuItem(label='three') self.uiOPTMNU_test2 = pm.optionMenu('uiOPTMNU_test2', label='test2') pm.menuItem(label='four') pm.menuItem(label='five') pm.menuItem(label='six') with self.uiCreateFrame('uiLAY_frameOptionMenuGroups', 'Option Menus Groups (PMOptionMenuGrp)') as self.uiLAY_frameOptionMenuGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiOPMGRP_test1 = pm.optionMenuGrp('uiOPMGRP_test1', label='test1', extraLabel='extraLabel') pm.menuItem(label='one') pm.menuItem(label='two') pm.menuItem(label='three') self.uiOPMGRP_test2 = pm.optionMenuGrp('uiOPMGRP_test2', label='test2', extraLabel='extraLabel') pm.menuItem(label='four') pm.menuItem(label='five') pm.menuItem(label='six') with self.uiCreateFrame('uiLAY_frameRadioButtons', 'Radio Buttons (PMRadioButton)') as self.uiLAY_frameRadioButtons: with pm.columnLayout(): with pm.rowLayout(numberOfColumns=4): pm.separator(style='none', width=140) pm.radioCollection() self.uiRAD_test1 = pm.radioButton('uiRAD_test1', label='test1') self.uiRAD_test2 = pm.radioButton('uiRAD_test2', label='test2') self.uiRAD_test3 = pm.radioButton('uiRAD_test3', label='test3') with self.uiCreateFrame('uiLAY_frameRadioButtonGroups', 'Radio Button Groups (PMRadioButtonGrp#)') as self.uiLAY_frameRadioButtonGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiRADGRP_test1 = pm.radioButtonGrp( 'uiRADGRP_test1', numberOfRadioButtons=1, label='PMRadioButtonGrp1', label1='test1' ) self.uiRADGRP_test2 = pm.radioButtonGrp( 'uiRADGRP_test2', numberOfRadioButtons=2, label='PMRadioButtonGrp2', labelArray2=('test1', 'test2') ) self.uiRADGRP_test3 = pm.radioButtonGrp( 'uiRADGRP_test3', numberOfRadioButtons=3, label='PMRadioButtonGrp3', labelArray3=('test1', 'test2', 'test3') ) self.uiRADGRP_test4 = pm.radioButtonGrp( 'uiRADGRP_test4', numberOfRadioButtons=4, label='PMRadioButtonGrp4', labelArray4=('test1', 'test2', 'test3', 'test4') ) with self.uiCreateFrame('uiLAY_frameSymbolCheckBoxes', 'Symbol Check Boxes (PMSymbolCheckBox)') as self.uiLAY_frameSymbolCheckBoxes: with pm.columnLayout(): with pm.rowLayout(numberOfColumns=3): pm.separator(style='none', width=140) self.uiSYMCHK_test1 = pm.symbolCheckBox( 'uiSYMCHK_test1', image='polyCube' ) self.uiSYMCHK_test2 = pm.symbolCheckBox( 'uiSYMCHK_test2', image='polyCone' ) with self.uiCreateFrame('uiLAY_frameScriptTables', 'Script Tables (PMScriptTable)') as self.uiLAY_frameScriptTables: with pm.columnLayout(): with pm.rowLayout(numberOfColumns=3): pm.separator(style='none', width=140) self.uiSCRTBL_test1 = pm.scriptTable( 'uiSCRTBL_test1', selectionMode=3, rows=4, columns=2 ) self.uiSCRTBL_test2 = pm.scriptTable( 'uiSCRTBL_test2', selectionMode=3, rows=4, columns=2 ) with self.uiCreateFrame('uiLAY_frameScrollField', 'Scroll Field (PMScrollField)') as self.uiLAY_frameScrollField: with pm.columnLayout(): with pm.rowLayout(numberOfColumns=3): pm.separator(style='none', width=140) self.uiSCRFLD_test1 = pm.scrollField( 'uiSCRFLD_test1', wordWrap=True ) self.uiSCRFLD_test2 = pm.scrollField( 'uiSCRFLD_test2', wordWrap=True ) with self.uiCreateFrame('uiLAY_frameShelfTabLayout', 'Shelf Tab Layout (PMShelfTabLayout)') as self.uiLAY_frameShelfTabLayout: with pm.columnLayout(adjustableColumn=True): with pm.shelfTabLayout('uiSHLTAB_test1') as self.uiSHLTAB_test1: with pm.shelfLayout('test1'): pass with pm.shelfLayout('test2'): pass with pm.shelfLayout('test3'): pass with pm.shelfTabLayout('uiSHLTAB_test2') as self.uiSHLTAB_test2: with pm.shelfLayout('test4'): pass with pm.shelfLayout('test5'): pass with pm.shelfLayout('test6'): pass with self.uiCreateFrame('uiLAY_frameTabLayout', 'Tab Layout (PMTabLayout)') as self.uiLAY_frameTabLayout: with pm.columnLayout(adjustableColumn=True): with pm.tabLayout('uiTAB_test1') as self.uiTAB_test1: with pm.rowLayout(numberOfColumns=1) as uiLAY_tabRow1: pass with pm.rowLayout(numberOfColumns=1) as uiLAY_tabRow2: pass with pm.rowLayout(numberOfColumns=1) as uiLAY_tabRow3: pass pm.tabLayout( self.uiTAB_test1, edit=True, tabLabel=((uiLAY_tabRow1, 'test1'), (uiLAY_tabRow2, 'test2'), (uiLAY_tabRow3, 'test3'),) ) with pm.tabLayout('uiTAB_test2') as self.uiTAB_test2: with pm.rowLayout(numberOfColumns=1) as uiLAY_tabRow4: pass with pm.rowLayout(numberOfColumns=1) as uiLAY_tabRow5: pass with pm.rowLayout(numberOfColumns=1) as uiLAY_tabRow6: pass pm.tabLayout( self.uiTAB_test2, edit=True, tabLabel=((uiLAY_tabRow4, 'test4'), (uiLAY_tabRow5, 'test5'), (uiLAY_tabRow6, 'test6'),) ) with self.uiCreateFrame('uiLAY_frameTextFields', 'Text Fields (PMTextField)') as self.uiLAY_frameTextFields: with pm.columnLayout(): pm.separator(style='none', height=2) with pm.rowLayout(numberOfColumns=3): pm.separator(width=140, style='none') self.uiTXT_test1 = pm.textField('uiTXT_test1') self.uiTXT_test2 = pm.textField('uiTXT_test2') with self.uiCreateFrame('uiLAY_frameTextFieldButtonGroups', 'Text Field Button Groups (PMTextFieldButtonGrp)') as self.uiLAY_frameTextFieldButtonGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiTXBTGR_test1 = pm.textFieldButtonGrp( 'uiTXBTGR_test1', label='test1', buttonLabel='button1' ) self.uiTXBTGR_test2 = pm.textFieldButtonGrp( 'uiTXBTGR_test2', label='test2', buttonLabel='button2' ) with self.uiCreateFrame('uiLAY_frameTextFieldGroups', 'Text Field Groups (PMTextFieldGrp)') as self.uiLAY_frameTextFieldGroups: with pm.columnLayout(): pm.separator(style='none', height=2) self.uiTXTGRP_test1 = pm.textFieldGrp( 'uiTXTGRP_test1', label='test1' ) self.uiTXTGRP_test2 = pm.textFieldGrp( 'uiTXTGRP_test2', label='test2' ) with self.uiCreateFrame('uiLAY_frameTextScrollLists', 'Text Scroll Lists (PMTextScrollList)') as self.uiLAY_frameTextScrollLists: with pm.columnLayout(): with pm.rowLayout(numberOfColumns=3): pm.separator(style='none', width=140) self.uiTXTLST_test1 = pm.textScrollList( 'uiTXTLST_test1', allowMultiSelection=True, append=('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten') ) self.uiTXTLST_test2 = pm.textScrollList( 'uiTXTLST_test2', allowMultiSelection=True, append=('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten') ) self.uiBTN_savePrefs = pm.button( label='Save Prefs', height=MAIN_BUTTONS_HEIGHT, command=self.onSavePrefsClicked ) self.uiBTN_loadPrefs = pm.button( label='Load Prefs', height=MAIN_BUTTONS_HEIGHT, command=self.onLoadPrefsClicked ) self.uiBTN_resetPrefs = pm.button( label='Reset Prefs', height=MAIN_BUTTONS_HEIGHT, command=self.onResetPrefsClicked ) uiLAY_mainForm.attachForm(self.uiLAY_mainScroll, 'top', 2) uiLAY_mainForm.attachForm(self.uiLAY_mainScroll, 'left', 2) uiLAY_mainForm.attachForm(self.uiLAY_mainScroll, 'right', 2) uiLAY_mainForm.attachControl(self.uiLAY_mainScroll, 'bottom', 2, self.uiBTN_savePrefs) uiLAY_mainForm.attachNone(self.uiBTN_savePrefs, 'top') uiLAY_mainForm.attachForm(self.uiBTN_savePrefs, 'left', 2) uiLAY_mainForm.attachPosition(self.uiBTN_savePrefs, 'right', 2, 33) uiLAY_mainForm.attachForm(self.uiBTN_savePrefs, 'bottom', 2) uiLAY_mainForm.attachNone(self.uiBTN_loadPrefs, 'top') uiLAY_mainForm.attachPosition(self.uiBTN_loadPrefs, 'left', 2, 33) uiLAY_mainForm.attachPosition(self.uiBTN_loadPrefs, 'right', 2, 66) uiLAY_mainForm.attachForm(self.uiBTN_loadPrefs, 'bottom', 2) uiLAY_mainForm.attachNone(self.uiBTN_resetPrefs, 'top') uiLAY_mainForm.attachPosition(self.uiBTN_resetPrefs, 'left', 2, 66) uiLAY_mainForm.attachForm(self.uiBTN_resetPrefs, 'right', 2) uiLAY_mainForm.attachForm(self.uiBTN_resetPrefs, 'bottom', 2) self.window.setTitle(self.window.__class__)
def _showUI(self, parent=None): self._uiName = 'CreateControlUI' self._windowSize = (260, 10) if pm.window(self._uiName + 'Window', ex=True): pm.deleteUI(self._uiName + 'Window', window=True) pm.windowPref(self._uiName + 'Window', remove=True) if parent is not None and isinstance(parent, pm.uitypes.Window): self._window = parent else: self._window = pm.window(self._uiName + 'Window', title=self._uiName, rtf=True, widthHeight=self._windowSize) self._uiTemplate = pm.uiTemplate('CreateControlUITemplace', force=True) self._uiTemplate.define(pm.button, width=5, height=40, align='left', bgc=[0.15, 0.25, 0.35]) self._uiTemplate.define(pm.columnLayout, adjustableColumn=1, w=10) self._uiTemplate.define(pm.frameLayout, borderVisible=False, labelVisible=True, mh=2, mw=2, width=self._windowSize[0], bgc=[0.2, 0.2, 0.2]) self._uiTemplate.define(pm.rowColumnLayout, rs=[ (1, 5), ], adj=True, numberOfColumns=2, cal=[ (1, 'left'), ], columnWidth=[(1, 100), (2, 100)]) with self._window: with self._uiTemplate: with pm.frameLayout(label='Create Control'): with pm.columnLayout(): with pm.rowColumnLayout(): self._uiElement['ctlName'] = pm.textFieldGrp( cl2=('left', 'right'), co2=(0, 0), cw2=(40, 100), label='Name:', text=self.name, cc=self._getUIValue) self._uiElement['ctlType'] = pm.optionMenu( label='Type:', cc=self._getUIValue) with self._uiElement['ctlType']: for ct in self._controlType: pm.menuItem(label=ct) with pm.rowColumnLayout(numberOfColumns=3, columnWidth=[ (1, 10), ]): self._uiElement['ctlLength'] = pm.floatFieldGrp( cl2=('left', 'right'), co2=(0, 0), cw2=(40, 30), numberOfFields=1, label='Length:', value1=3.0, cc=self._getUIValue) self._uiElement['ctlRadius'] = pm.floatFieldGrp( cl2=('left', 'right'), co2=(0, 0), cw2=(40, 30), numberOfFields=1, label='Radius:', value1=0.5, cc=self._getUIValue) self._uiElement['ctlRes'] = pm.optionMenu( label='Step:', cc=self._getUIValue) with self._uiElement['ctlRes']: for ct in self._resolutions: pm.menuItem(label=ct) with pm.rowColumnLayout(): self._uiElement['ctlColor'] = pm.colorSliderGrp( label='Color:', rgb=(0, 0, 1), co3=(0, 0, 0), cw3=(30, 60, 60), cl3=('left', 'center', 'right'), cc=self._getUIValue) self._uiElement['ctlAxis'] = pm.optionMenu( label='Axis:', cc=self._getUIValue) with self._uiElement['ctlAxis']: for ct in self._axisList: pm.menuItem(label=ct) self._uiElement['ctlOffset'] = pm.floatFieldGrp( cl4=('left', 'center', 'center', 'center'), co4=(0, 5, 0, 0), cw4=(45, 50, 50, 50), numberOfFields=3, label='Offset:', cc=self._getUIValue) self._uiElement['ctlOption'] = pm.checkBoxGrp( cl5=('left', 'center', 'center', 'center', 'center'), co5=(0, 5, 0, 0, 0), cw5=(45, 50, 50, 50, 50), numberOfCheckBoxes=4, label='Options:', labelArray4=[ 'group', 'setAxis', 'sphere', 'mirror' ], cc=self._getUIValue) pm.button(label='Create', c=pm.Callback(self.createControl)) pm.button(label='Change Current Select', c=lambda x: ul.do_function_on() (self.changeControlShape)(sl=True)) pm.button(label='Set Color Select', c=lambda x: ul.do_function_on() (self.setColor)(sl=True)) self._getUIValue() self.reset_window_height()