I develop tools in Autodesk Maya.  Many of the tools I build have simple windowed GUIs for the animators and modellers to use.  These GUIs often contain what you'd normally expect to see in any basic window; labels, lists, menus, buttons, textfields, etc.  However, there are limitations to the complexity of the UIs you can build with the available tools, specifically in the types of available widgets.
I'm interested in using some of the more advanced wxPython widgets such as the ListView (grid), Tree, etc.  This would involve using a complete wxFrame (window) to display the whole UI, which would essentially mean that window would no longer be tied to Maya.  Not a deal breaker, but it means when Maya is minimized, the window won't follow suit.
I've tried something like this before with tkinter as a test, but found that it needed a MainLoop to run in its own thread.  This is logical, but in my case, it conflicts with Maya's own thread, essentially making Maya hang until the window is closed.  This is due to the fact that Maya runs all scripts, be they MEL or Python, in a single thread that the main Maya GUI shares.  This is to prevent one script from, say, deleting an object while another script is trying to do work on the same object.
wxPython has this same "mainloop" methodolgy. I'm wondering if there's any way around it so that it can work within Maya?
The best way to go is creating a QWidget with what you need, and using it from within a MPxCommand thru the C++ API.  That way you also have the chance to inject complete custom editors into Maya via scriptedPanels.
But if you're bound to Python, pyQt is the way to go.
Using external GUI libraries to make user interfaces in Autodesk Maya