Hi Paul,
The Python API fix "Parenting widget to 3dsmax window" (MAXX-15268) is addressing the issue of creating a PySide window and keeping it always on top of the 3dsMax window, as the MAXScipt Listener window does.
The problem is that this fix is indeed not yet reflected in the documentation, however the related sample files (located at 3DSMAX_INSTALLATION_FOLDER\scripts\Python\
) were updated.
The issue in question is shown to be fixed within demoPySideQWidget.py
file located in that folder, where the most import method is
34 # Attaches the QWidget to the 3dsmax mainwindow
35 MaxPlus.AttachQWidgetToMax( w )
and as I mentioned, the documentation is not yet reflecting the changes, yet within MaxPlus.py
we can see it prepared:
# Attaches a given parentless QWidget by its Qt winId to the win32 3ds max main window.
def AttachQWidgetToMax( qwidget, isModelessDlg=True ):
''' Attaches a given parentless QWidget by its Qt winId to the win32 3ds max main window.
This is internally done by creating an in-between QWinWidget, which will be child
of the 3d max window, and a parenting of the QWidget to the QWinWidget.
For the given QWidget the 3ds max keyboards accelerators will be disabled when
the widget gets the focus.
By setting isModelessDlg to true, 3ds max will properly disable/enable the QWidget
when another modal 3ds max dialog pops up. '''
I hope this is the behavior you've been expecting.
Cheers,
Denis GRIGOR
Developer Technical Services
Autodesk Developer Network