代码之家  ›  专栏  ›  技术社区  ›  python

在Maya python脚本gui中未获得预期输出

  •  0
  • python  · 技术社区  · 6 年前

    我正在使用python脚本在maya中制作gui,但没有得到预期的输出。

    我想展示一下 Submit Button 在选项卡布局之外,但我做错了什么。有人能纠正我吗?

    要添加按钮的第一个文本字段的结尾 choose 在预期输出中添加了like。

    代码:

    import maya.cmds as cmds
    
    # Make a new window
    
    window = cmds.window( title="Render", iconName='BTD', widthHeight=
    (400,500),titleBar=True,minimizeButton=True,maximizeButton=True )
    cmds.columnLayout( adjustableColumn=True)
    
    form = cmds.formLayout()
    tabs = cmds.tabLayout(innerMarginWidth=10, innerMarginHeight=10)
    cmds.formLayout(form,edit=True,attachForm=((tabs, 'top', 0), (tabs, 'left', 
    0), (tabs, 'bottom', 0), (tabs, 'right', 0)) )
    child1 = cmds.rowColumnLayout(numberOfColumns=2)
    cmds.button(label='1')
    cmds.button(label='2')
    cmds.button(label='3')
    cmds.button(label='9')
    cmds.button(label='9')
    cmds.button(label='9')
    cmds.button(label='9')
    cmds.button(label='9')
    cmds.setParent( '..' )
    
    
    child2 = cmds.rowColumnLayout(numberOfColumns=1,columnOffset = 
    (1,'left',10))
    #cmds.text("Output Directory",width = 50,height=50,font = "boldLabelFont")
    cmds.text("Output Directory",width=200, height=50,font="boldLabelFont", 
    align='left')
    name = cmds.textField(w = 300,h = 20)
    
    cmds.text("Notify on job completion",width = 200,height=50,font = 
    "boldLabelFont",align='left')
    name = cmds.textField(w = 370,h = 20)
    
    
    
    
    cmds.setParent( '..' )
    
    
    child3 = cmds.rowColumnLayout(numberOfColumns=2)
    cmds.button(label='7')
    
    
    cmds.button(label='8')
    cmds.button(label='9')
    cmds.setParent( '..' )
    
    cmds.tabLayout( tabs, edit=True, tabLabel=((child1, 'General'), (child2, 
    'Advanced'),(child3, 'Job Software')) )
    cmds.setParent( '..' )
    
    
    #cmds.setParent( '..' )   
    cmds.button("Submit Job",width=100, height=50, align='right') 
    
    cmds.showWindow( window )
    

    输出

    enter image description here

    预期产量

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  1
  •   DrWeeny    6 年前

    我没有使用setParent命令,这对我来说太混乱了, 我已通过在中添加父标志纠正了您的问题: form and cmds.button("Submit Job....)" 大多数时候我只使用列和行布局

    import maya.cmds as cmds
    
    # Make a new window
    
    window = cmds.window( title="Render", iconName='BTD', widthHeight=
    (400,500),titleBar=True,minimizeButton=True,maximizeButton=True )
    cmds.columnLayout( adjustableColumn=True)
    
    columnMain = cmds.columnLayout() # <<================================
    form = cmds.formLayout(p=columnMain)
    tabs = cmds.tabLayout(innerMarginWidth=10, innerMarginHeight=10)
    cmds.formLayout(form,edit=True,attachForm=((tabs, 'top', 0), (tabs, 'left', 
    0), (tabs, 'bottom', 0), (tabs, 'right', 0)) )
    child1 = cmds.rowColumnLayout(numberOfColumns=2)
    cmds.button(label='1')
    cmds.button(label='2')
    cmds.button(label='3')
    cmds.button(label='9')
    cmds.button(label='9')
    cmds.button(label='9')
    cmds.button(label='9')
    cmds.button(label='9')
    cmds.setParent( '..' )
    
    
    child2 = cmds.rowColumnLayout(numberOfColumns=1,columnOffset = 
    (1,'left',10))
    #cmds.text("Output Directory",width = 50,height=50,font = "boldLabelFont")
    cmds.text("Output Directory",width=200, height=50,font="boldLabelFont", 
    align='left')
    name = cmds.textField(w = 300,h = 20)
    
    cmds.text("Notify on job completion",width = 200,height=50,font = 
    "boldLabelFont",align='left')
    name = cmds.textField(w = 370,h = 20)
    
    
    
    
    cmds.setParent( '..' )
    
    
    child3 = cmds.rowColumnLayout(numberOfColumns=2)
    cmds.button(label='7')
    
    
    cmds.button(label='8')
    cmds.button(label='9')
    cmds.setParent( '..' )
    
    cmds.tabLayout( tabs, edit=True, tabLabel=((child1, 'General'), (child2, 
    'Advanced'),(child3, 'Job Software')) )
    cmds.setParent( '..' )
    
    
    #cmds.setParent( '..' )   
    cmds.button("Submit Job",width=100, height=50, align='right', p=columnMain) # <<================================
    
    cmds.showWindow( window )
    

    编辑-----

    下面是我将使用多少布局的示例:行/列(请注意,红色矩形是选项卡小部件)

    enter image description here

    编辑2-----

    下面是一个代码示例:

    import maya.cmds as cmds
    
    # Make a new window
    
    window = cmds.window( title="Render", iconName='BTD', widthHeight=(400,500),titleBar=True,minimizeButton=True,maximizeButton=True )
    
    # 1.0
    columnMain = cmds.columnLayout() # the cyan rectangle
    
    # 1.1 : First WIDGET : Conductor refresh - light green
    
    conductorLayout = cmds.rowLayout(numberOfColumns=2, p=columnMain)
    cmds.button(label='image', width=350, p=conductorLayout)
    cmds.button(label='refresh', p=conductorLayout)
    
    
    #1.2 : Second WIDGET : tab widget - in red
    form = cmds.formLayout(p=columnMain)
    tabs = cmds.tabLayout(innerMarginWidth=5, innerMarginHeight=5, p=form)
    
    #     1.2.1 : first tab widget - blue color
    child1 = cmds.columnLayout(p=tabs)
    #         1.2.1.2 : the green one with image picker
    cmds.button(p=child1)
    pickpath = cmds.rowLayout(numberOfColumns=2, p=child1)
    name = cmds.textField(w = 370,h = 20, p=pickpath)
    cmds.button( label='Submit Job',width=130,align='right', p=pickpath)
    cmds.button(p=child1)
    
    #     1.2.2 : second tab widget - blue Color
    
    child2 = cmds.rowColumnLayout(numberOfColumns=2,p=tabs)
    cmds.button(p=child2)
    cmds.button(p=child2)
    
    
    cmds.tabLayout( tabs, edit=True, tabLabel=((child1, 'One'),(child2, 'Two')))
    
    #1.3 Pink
    submit_widget = cmds.rowLayout(numberOfColumns=2, p=columnMain)
    cmds.checkBox(label='Scout Job', p=submit_widget)
    cmds.button( label='Submit Job',width=130,align='right', p=submit_widget)
    cmds.showWindow()