Is your goal just to get the name of the Outliner panel after you
create it? The problem is that the window is probably being put into
an event queue and not being shown until controls returns back again.
You can tell because no matter how long you put a sleep in there, it
will not show until the sleep is done.

This works because it is not based on visibility. Just the fact that
the object exists:

cmds.OutlinerWindow()
print cmds.getPanel(typ='outlinerPanel')


On Fri, Sep 21, 2012 at 4:30 PM, Jesse Capper <[email protected]> wrote:
> I was checking out a question someone had on tech-artists and came across
> some behavior that I don't understand and hoped someone could enlighten me.
> With the outliner closed, if I run:
>
> cmds.OutlinerWindow()
> print cmds.getPanel(vis=True)
>
> cmds.getPanel doesn't contain the newly visible outliner. If I call
> OutlinerWindow() twice, and then getPanel:
>
> cmds.OutlinerWindow()
> cmds.OutlinerWindow()
> print cmds.getPanel(vis=True)
>
> cmds.getPanel will now contain the newly visible outliner. I tried using
> time.sleep, but that didn't help.
> If I execute cmds.OutlinerWindow() by itself and then execute
> cmds.getPanel(vis=True), it will appear in the panel list. It's only when
> they are executed together that it doesn't appear in the panel list.
>
> Anyone know why? Is there a better way to create the outliner?
>
> --
> view archives: http://groups.google.com/group/python_inside_maya
> change your subscription settings:
> http://groups.google.com/group/python_inside_maya/subscribe

-- 
view archives: http://groups.google.com/group/python_inside_maya
change your subscription settings: 
http://groups.google.com/group/python_inside_maya/subscribe

Reply via email to