Thanks for your help, you cleared some things up for me. I had used this self.ui.blah approach because I saw that at a company I worked for, it's also the stated 'single inheritance' approach in the QT docs here: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/designer.html
In your example I would get this: TypeError: ('Wrong base class of toplevel widget', (<class '__main__.skinWrangler'>, 'QDialog')) So I made it a QDialog and added this string from the docs: def __init__(self): >>>QtGui.QDialog.__init__(self) Now it works fine! (the onClose) CE On Mon, Apr 23, 2012 at 3:57 AM, Justin Israel <justinisr...@gmail.com> wrote: > You have some issues with the way you are loading and using your UI. > Notice that you are loading the UI into self.ui, but then implementing > events on self. Your end up calling self.ui.show() from your init which is > showing a completely different object than your main window class. > > Normally, I would recommend either precompiling your UIC via pyuic4, or, > loading it in on the fly and then inheriting from it: > > class SkinWrangler(QtGui.QMainWindow, Ui_skinWrangler): > def __init__(self, parent=None): > super(SkinWrangler, self).__init__(parent) > self.setupUi(self) > > There are variations of that approach, where some people will store the ui > as an object: > self.ui = Ui_skinWrangler() > self.ui.setupUi(self) > > The immediate fix for how you are using loadUi is to tell it to set it up on > your main window (similar to what setupUi does): > > class skinWrangler(QtGui.QMainWindow): > def __init__(self): > > # other stuff here # > > uiPath = "/path/to/ui/test.ui" > uic.loadUi(uiPath, self) > > def closeEvent(self, e): > print 'CLOSED' > > win = skinWrangler() > win.show() # instead of win.ui.show() > > Don't call show() from your init. It should be called by the entry-point > function that is launching your UI. > Now you will see your closeEvent get called when the window is closed. > The reason you were seeing it look like it was occurring during init each > time, is that what it was really doing was deleting your previous instance > with cmds.deleteUI() which triggers the closeEvent for that previous widget. > > > > > On Sun, Apr 22, 2012 at 5:21 PM, Christopher Evans <chris.ev...@gmail.com> > wrote: >> >> http://pastebin.com/PKEyg0FJ >> >> On Mon, Apr 23, 2012 at 1:11 AM, Justin Israel <justinisr...@gmail.com> >> wrote: >> > Post your latest code? Maybe you have a strange indent. No idea why the >> > closeEvent would happen right away unless maybe you are letting it get >> > garbage collected immediately. >> > >> > >> > On Sun, Apr 22, 2012 at 3:51 PM, Christopher Evans >> > <chris.ev...@gmail.com> >> > wrote: >> >> >> >> If I pipe that 'name' into the 'p' parent flag of the sciptjob, it >> >> lives on after i close the window. Second, integrating your code, the >> >> closeEvent runs at the time I execute the script and the window opens >> >> (weird?) it doesn't run on close. >> >> >> >> On Sat, Apr 21, 2012 at 5:16 AM, John Patrick <jspatr...@gmail.com> >> >> wrote: >> >> > You need to set the object name to be able to find it in Maya: >> >> > http://pastebin.com/T4tJ4GjE >> >> > >> >> > >> >> > On Fri, Apr 20, 2012 at 5:56 PM, Christopher Evans >> >> > <chris.ev...@gmail.com> >> >> > wrote: >> >> >> >> >> >> class skinWrangler(QtGui.QMainWindow): >> >> >> def __init__(self): >> >> >> QtGui.QMainWindow.__init__(self) >> >> >> >> >> >> Looks like I am creating the window differently than you guys. >> >> >> >> >> >> I was going to give this skinning tool away free anyways, here's >> >> >> that >> >> >> few surrounding chunks of code: http://pastebin.com/5tJfvSB7 >> >> >> >> >> >> Thanks, >> >> >> >> >> >> CE >> >> >> >> >> >> On Sat, Apr 21, 2012 at 2:06 AM, Justin Israel >> >> >> <justinisr...@gmail.com> >> >> >> wrote: >> >> >> > I hit send to fast. Ignore that silly line at the end of my last >> >> >> > message >> >> >> > :-) >> >> >> > >> >> >> > >> >> >> > On Fri, Apr 20, 2012 at 5:05 PM, Justin Israel >> >> >> > <justinisr...@gmail.com> >> >> >> > wrote: >> >> >> >> >> >> >> >> On Fri, Apr 20, 2012 at 4:25 PM, Christopher Evans >> >> >> >> <chris.ev...@gmail.com> >> >> >> >> wrote: >> >> >> >>> >> >> >> >>> First lemme start with: Is it possible to use closeEvent() in >> >> >> >>> Maya? >> >> >> >>> I >> >> >> >>> cannot get that to work. >> >> >> >> >> >> >> >> >> >> >> >> Can you be more specific about what is giving you trouble? >> >> >> >> This works just fine: >> >> >> >> >> >> >> >> class Window(QtGui.QMainWindow): >> >> >> >> def closeEvent(self, e): >> >> >> >> print "HIT" >> >> >> >> >> >> >> >>> >> >> >> >>> >> >> >> >>> Can someone tell me how to feed a custom pyqt mainWindow tool >> >> >> >>> into >> >> >> >>> the >> >> >> >>> parent flag of a scriptjob? >> >> >> >>> >> >> >> >>> >> >> >> >>> I have been looking all over teh internets, I think it involves >> >> >> >>> SIP >> >> >> >>> somehow.. all examples I have seen show QDialog, or mel/python >> >> >> >>> commands UIs. >> >> >> >> >> >> >> >> >> >> >> >> The part about getting the maya UI name from a pyqt widget has >> >> >> >> been >> >> >> >> asked >> >> >> >> before. >> >> >> >> It goes like this: >> >> >> >> >> >> >> >> import sip >> >> >> >> import maya.OpenMayaUI as mui >> >> >> >> >> >> >> >> win = # some PyQt widget >> >> >> >> mayaName = mui.MQtUtil.fullName(long(sip.unwrapinstance(win))) >> >> >> >> >> >> >> >> You can also check out >> >> >> >>> >> >> >> >>> >> >> >> >>> Thanks, >> >> >> >>> >> >> >> >>> -- >> >> >> >>> CE >> >> >> >>> >> >> >> >>> -- >> >> >> >>> 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 >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> CE >> >> >> >> >> >> -- >> >> >> view archives: http://groups.google.com/group/python_inside_maya >> >> >> change your subscription settings: >> >> >> http://groups.google.com/group/python_inside_maya/subscribe >> >> > >> >> > >> >> > >> >> > >> >> > -- >> >> > John Patrick >> >> > 404-242-2675 >> >> > jspatr...@gmail.com >> >> > http://www.canyourigit.com >> >> > >> >> > -- >> >> > view archives: http://groups.google.com/group/python_inside_maya >> >> > change your subscription settings: >> >> > http://groups.google.com/group/python_inside_maya/subscribe >> >> >> >> >> >> >> >> -- >> >> CE >> >> >> >> -- >> >> 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 >> >> >> >> -- >> CE >> >> -- >> 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 -- CE -- view archives: http://groups.google.com/group/python_inside_maya change your subscription settings: http://groups.google.com/group/python_inside_maya/subscribe