Creating a custom UI inside Maya with python

Discussion in 'Python' started by blur959, Aug 9, 2010.

  1. blur959

    blur959 Guest

    Hi, all, I wonder if my post is relevant here, but i will still post
    it anyway. I am working on creating a custom UI inside Maya and I
    encountered some problems. Firstly, I am trying to create a textfield
    button that creates a locator-shaped curve based on the coordinates
    the user keyed into the text field. However I got no idea how to go
    about doing it properly. I hope you guys could give me some help.
    Thanks. I attached my code below. My code isn't working though. I have
    this error, which says button2 is not defined. I got no clue on how
    else to debug.

    import maya.cmds as cmds

    def createMyLayout():
    window = cmds.window(widthHeight=(1000, 600), title="test",
    resizeToFitChildren=1)
    cmds.rowLayout("button1, button2, button3", numberOfColumns=5)

    cmds.columnLayout(adjustableColumn=True, columnAlign="center",
    rowSpacing=10)

    button2 = cmds.textFieldButtonGrp(label="LocatorCurve",
    text="Please key in your
    coordinates",
    changeCommand=edit_curve,
    buttonLabel="Execute",
    buttonCommand=locator_curve)


    cmds.setParent(menu=True)

    cmds.showWindow(window)

    def locator_curve(*args):
    # Coordinates of the locator-shaped curve.
    crv = cmds.curve(degree=1,
    point=[(1, 0, 0),
    (-1, 0, 0),
    (0, 0, 0),
    (0, 1, 0),
    (0, -1, 0),
    (0, 0, 0),
    (0, 0, 1),
    (0, 0, -1),
    (0, 0, 0)])


    return crv

    def edit_curve(*args):
    parts = button2.split(",")
    print parts
    x = parts[0]
    y = parts[1]
    z = parts[2]


    createMyLayout()
     
    blur959, Aug 9, 2010
    #1
    1. Advertising

  2. blur959

    MRAB Guest

    blur959 wrote:
    > Hi, all, I wonder if my post is relevant here, but i will still post
    > it anyway. I am working on creating a custom UI inside Maya and I
    > encountered some problems. Firstly, I am trying to create a textfield
    > button that creates a locator-shaped curve based on the coordinates
    > the user keyed into the text field. However I got no idea how to go
    > about doing it properly. I hope you guys could give me some help.
    > Thanks. I attached my code below. My code isn't working though. I have
    > this error, which says button2 is not defined. I got no clue on how
    > else to debug.
    >
    > import maya.cmds as cmds
    >
    > def createMyLayout():

    [snip]
    > button2 = cmds.textFieldButtonGrp(label="LocatorCurve",
    > text="Please key in your
    > coordinates",
    > changeCommand=edit_curve,
    > buttonLabel="Execute",
    > buttonCommand=locator_curve)
    >

    [snip]

    When you assign to a name in a function the target is by default local
    to that function, so 'button2' is local to 'createMyLayout'. Add the
    line:

    global button2

    to the function to make it visible to the rest of the module/file.
     
    MRAB, Aug 9, 2010
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Brandon J. Van Every

    Maya API with Python?

    Brandon J. Van Every, Apr 26, 2004, in forum: Python
    Replies:
    3
    Views:
    698
    Brandon J. Van Every
    Apr 26, 2004
  2. Matthias Baas
    Replies:
    0
    Views:
    401
    Matthias Baas
    Apr 13, 2006
  3. warpcat
    Replies:
    9
    Views:
    3,016
    Russell Warren
    Jun 22, 2006
  4. pixellee

    Python & Blend or Maya

    pixellee, Sep 16, 2007, in forum: Python
    Replies:
    0
    Views:
    261
    pixellee
    Sep 16, 2007
  5. moonrie
    Replies:
    2
    Views:
    623
    moonrie
    Mar 13, 2008
Loading...

Share This Page