looks like autodesk has released a service pack for maya2009. mentioned in the additions to this is a fix for python where UI callbakcs return values had problems. not sure if this is the fix i am looking for, becuase i am in production at the moment and can't reinstall the new maya2009 just yet. will let you know.
in the mean time, i have worked around the issue by creating and assigning mel callback procs that call the python callback functionality, ie. passing python the return values properly through a flaming hoop! at least if this gets fixed it will be an easy mod to my script. cheers. On May 26, 12:03 pm, chadrik <[email protected]> wrote: > yeah, that looks exactly like the error that you get when a callback > does not support python. autodesk has been trying to find and fix > these broken callbacks since 8.5, but it looks like they may have > overlooked it when implementing this new one. > > since autodesk does not have an open bug tracker, the pymel group > hosts a google doc with python-related bugs: > http://spreadsheets.google.com/ccc?key=pdI8BlSwGdr0btApDuZEcKQ&inv=py > ... > > feel free to post.... > > -chad > > On May 25, 2009, at 4:11 PM, mtherrell wrote: > > > > > can anyone shed some light on this? > > i am trying to use the new 'treeView' gui in python. > > > this gui comes with allot of great callback triggers and would have > > allot of great functionality for what i am trying to use it for. > > however, i am currently stumped: > > > i cannot assign python functions as callbacks. > > i have tried every conventional way of doing this, ways that work find > > on other interface callbacks, > > > (string formating for positional arguments, lambda, functions that > > accept variable numbers of args.. > > below are examples of each). but i always get an error with a memory > > address included. like: > > > // Error: <function at 0x000000001E39A208> "layer 1" "newname"; // > > // Error: Line 1.1: Syntax error // > > > is it possible that even though they say this gui is availabe for > > python, that it really is not??!, because this looks like it may be > > expecting only a mel proc as a callback.... because of the syntax > > error thing. > > > here are four python examples of ways of doing this that work fine on > > other gui: > > (i am creating the callbacks on the 'editLabelCommand' signal. > > so try to double click on the treeViewItem and rename it after > > creating each example to see my problem) > > > ###### example1: positional arg failure treeView example > > def foo(a, b): > > print a, b > > return a > > > from maya import cmds > > window = cmds.window() > > layout = cmds.formLayout() > > > control = cmds.treeView( parent = layout, numberOfButtons = 3, abr = > > False, elc = foo) > > > cmds.formLayout(layout,e=True, attachForm=(control,'top', 2)) > > cmds.formLayout(layout,e=True, attachForm=(control,'left', 2)) > > cmds.formLayout(layout,e=True, attachForm=(control,'bottom', 2)) > > cmds.formLayout(layout,e=True, attachForm=(control,'right', 2)) > > > cmds.showWindow( window ) > > > cmds.treeView( control, e=True, addItem = ("layer 1", "")) > > > ###### example2 wild-card args function positional arg failure > > treeView example > > def poo(*args): > > print "callback args: " + str(args[1:]) > > return args[1] > > > from maya import cmds > > window = cmds.window() > > layout = cmds.formLayout() > > > control = cmds.treeView( parent = layout, numberOfButtons = 3, abr = > > False, elc = poo) > > > cmds.formLayout(layout,e=True, attachForm=(control,'top', 2)) > > cmds.formLayout(layout,e=True, attachForm=(control,'left', 2)) > > cmds.formLayout(layout,e=True, attachForm=(control,'bottom', 2)) > > cmds.formLayout(layout,e=True, attachForm=(control,'right', 2)) > > > cmds.showWindow( window ) > > > cmds.treeView( control, e=True, addItem = ("layer 1", "")) > > > ###### example3: "catch-all arg" lamba positional arg failure treeView > > example > > def goo(arg1,arg2): > > print "callback args: " +arg1) > > return arg1 > > > from maya import cmds > > window = cmds.window() > > layout = cmds.formLayout() > > elc_cmd = lambda *args: goo(arg1,arg2) > > control = cmds.treeView( parent = layout, numberOfButtons = 3, abr = > > False, elc = elc_cmd) > > > cmds.formLayout(layout,e=True, attachForm=(control,'top', 2)) > > cmds.formLayout(layout,e=True, attachForm=(control,'left', 2)) > > cmds.formLayout(layout,e=True, attachForm=(control,'bottom', 2)) > > cmds.formLayout(layout,e=True, attachForm=(control,'right', 2)) > > > cmds.showWindow( window ) > > > cmds.treeView( control, e=True, addItem = ("layer 1", "")) > > > ###### example4: string positional arg failure treeView example > > def goo(arg1,arg2): > > print "callback args: " + str(args[1:]) > > return arg1 > > > from maya import cmds > > window = cmds.window() > > layout = cmds.formLayout() > > elc_cmd = "goo(\'%(1)s\',\'%(2)s\')" > > control = cmds.treeView( parent = layout, numberOfButtons = 3, abr = > > False, elc = elc_cmd) > > > cmds.formLayout(layout,e=True, attachForm=(control,'top', 2)) > > cmds.formLayout(layout,e=True, attachForm=(control,'left', 2)) > > cmds.formLayout(layout,e=True, attachForm=(control,'bottom', 2)) > > cmds.formLayout(layout,e=True, attachForm=(control,'right', 2)) > > > cmds.showWindow( window ) > > > cmds.treeView( control, e=True, addItem = ("layer 1", "")) > > > ## thanks for any help! > > --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/python_inside_maya -~----------~----~----~----~------~----~------~--~---
