Creating a custom UI inside Maya with python

B

blur959

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()
 
M

MRAB

blur959 said:
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.
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,764
Messages
2,569,566
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top