Thank you Dave. It's still acting weird I tried putting "global myUI" at different places, the UI only shows up if it's inside the function mySimple UI. But when calling the fuction again it would give me this error whether I've closed the first UI or not.
# Error: TypeError: 'MySimpleUI' object is not callable # Putting myUI = None around the code doesn't fix it. Everything works fine tho if I remove the function and just have these 2 lines by themselves. myUI = MySimpleUI() myUI.ui.show() anyway around this? :O Sorry for asking so many question. best regard, Panupat C. On Tue, Jan 10, 2012 at 5:23 PM, David Moulder <[email protected]>wrote: > This is now down to pythons garbage collection destroying the ui. > > If you make a global variable and assign you ui to that then you'll be > fine. > > ie: > > global myUI > myUI = None > > def mySimpleUI(): > myUI = MySimpleUI() > myUI.ui.show() > > -Dave > > > On Tue, Jan 10, 2012 at 10:03 AM, Panupat Chongstitwattana < > [email protected]> wrote: > >> Justin, thank you for the link. >> >> I'm a little curious, how do I properly use the pumpThread? With >> pumpThread, my UI would disappear as soon as it appeared. Am I putting the >> pumpThread at the right place? >> >> >> import pumpThread >> from PyQt4 import uic >> >> class MySimpleUI(object): >> def __init__(self): >> pumpThread.initializePumpThread() >> self.ui = uic.loadUi('D:\\ui\\hello.ui') >> >> def mySimpleUI(): >> myUI = MySimpleUI() >> myUI.ui.show() >> >> >> hello.ui is only a widget with a text. >> >> >> On Mon, Jan 9, 2012 at 11:36 PM, Kurian O.S <[email protected]> wrote: >> >>> Aha I didnt see that and it wont work previous version and he should use >>> pumbthread in that case .. >>> >>> >>> On Mon, Jan 9, 2012 at 11:19 AM, Justin Israel >>> <[email protected]>wrote: >>> >>>> It should be in the sdk directory and not in your path just yet. But if >>>> you cant find it: >>>> >>>> http://code.google.com/p/svnformaya/source/browse/trunk/pumpThread.py?r=3 >>>> >>>> >>>> >>>> On Jan 9, 2012, at 8:14 AM, Justin Israel <[email protected]> >>>> wrote: >>>> >>>> Kurian, he is using maya 2010 before they rewrote it in qt. so I don't >>>> believe MQtUtil even exists. The pumpThread utility is what he needs. It >>>> creates a fakey event loop that keeps processing events from qt as they >>>> stack up and also takes care of the global qapp that will be shared. There >>>> is actually no global qapp being used by maya. >>>> >>>> >>>> >>>> On Jan 9, 2012, at 6:07 AM, "Kurian O.S" <[email protected]> wrote: >>>> >>>> O otherwise you can try using this >>>> >>>> import sip >>>> import maya.OpenMayaUI as mui >>>> from PyQt4.QtCore import * >>>> from PyQt4.QtQtGui import * >>>> >>>> def getMayaWindow(): >>>> ptr = mui.MQtUtil.mainWindow() >>>> return sip.wrapinstance(long(ptr), QObject) >>>> >>>> class Form(QDialog): >>>> def __init__(self, parent=None): >>>> super(Form, self).__init__(parent) >>>> self.setObjectName('mainUI') >>>> self.mainLayout = QVBoxLayout(self) >>>> self.myButton = QPushButton('myButton') >>>> self.mainLayout.addWidget(self.myButton) >>>> >>>> global app >>>> global form >>>> app = qApp >>>> form = Form(getMayaWindow()) >>>> form.show() >>>> >>>> PS : PyQt4.QtCore import * is not really a good idea at all. >>>> >>>> On Mon, Jan 9, 2012 at 9:01 AM, Panupat Chongstitwattana < >>>> [email protected]> wrote: >>>> >>>>> David - does pumpThread come with Maya 2010? >>>>> >>>>> I'll try it out once I get to my studio tomorrow, thanks :) >>>>> >>>>> >>>>> >>>>> On Mon, Jan 9, 2012 at 7:57 PM, David Moulder < >>>>> [email protected]> wrote: >>>>> >>>>>> You are using pumpThread right? >>>>>> >>>>>> If so you shouldn't do sys.exit(app.exec_()) >>>>>> >>>>>> just myapp.show() >>>>>> >>>>>> If your not using pumpThread you have to in Maya 2010. >>>>>> >>>>>> You can find pumpThread in the sdk folder. From memory you need to >>>>>> import it and initialize it before any Qt Gui is created. >>>>>> >>>>>> import pumpThread as pt >>>>>> pt.initializePumpThread() >>>>>> >>>>>> -Dave >>>>>> >>>>>> >>>>>> On Mon, Jan 9, 2012 at 12:31 PM, Panupat Chongstitwattana < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Kamil >>>>>>> >>>>>>> The UI class is Ui_AddPlayblast.py. The set title line looks like >>>>>>> this >>>>>>> >>>>>>> AddPlayblast.setWindowTitle(QtGui.QApplication.translate("AddPlayblast", >>>>>>> "Manual Add Playblast", None, QtGui.QApplication.UnicodeUTF8)) >>>>>>> >>>>>>> I tried using both "AddPlayblast" and "Manual Add Playblast" to no >>>>>>> avail. Is there anything else I should try? >>>>>>> >>>>>>> >>>>>>> Kurian - the UI script will be run exclusively in Maya. As I >>>>>>> understand, the __name__ = __main__ only works if you run the py file >>>>>>> directly? Initally I'm launching the UI with these commands >>>>>>> >>>>>>> app = QtGui.QApplication(sys.argv) >>>>>>> myapp = AddPlayblast() >>>>>>> myapp.show() >>>>>>> sys.exit(app.exec_()) >>>>>>> >>>>>>> I tested it out in another function, and it is this line that >>>>>>> freezes Maya >>>>>>> >>>>>>> myapp = AddPlayblast() >>>>>>> >>>>>>> >>>>>>> best regard, >>>>>>> Panupat C. >>>>>>> >>>>>>> >>>>>>> On Mon, Jan 9, 2012 at 7:04 PM, Kurian O.S <[email protected]>wrote: >>>>>>> >>>>>>>> you can use >>>>>>>> >>>>>>>> class MyApp (QApplication): >>>>>>>> .... >>>>>>>> >>>>>>>> if __name__ == '__main__': >>>>>>>> app = MyApp( sys.argv) >>>>>>>> if app.isRunning(): >>>>>>>> ... do whatevr u want >>>>>>>> >>>>>>>> >>>>>>>> On Mon, Jan 9, 2012 at 5:30 PM, Ricardo Viana <[email protected] >>>>>>>> > wrote: >>>>>>>> >>>>>>>>> Humm. It should. Check you have your naming right on the .ui for >>>>>>>>> window widget. >>>>>>>>> >>>>>>>>> Best regards >>>>>>>>> Ricardo Viana >>>>>>>>> >>>>>>>>> On Jan 9, 2012, at 11:56 AM, Panupat Chongstitwattana < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>> Hi Kamil. >>>>>>>>> >>>>>>>>> Thanks for suggestion. But the cmds deleteUI/window modules can't >>>>>>>>> seem to detect the PyQt window's titles :( >>>>>>>>> >>>>>>>>> >>>>>>>>> On Mon, Jan 9, 2012 at 5:31 PM, Kamil Hepner <[email protected] >>>>>>>>> > wrote: >>>>>>>>> >>>>>>>>>> It's very simple: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> winName = "myWindow" >>>>>>>>>> if pm.windows.window(winName, exists=True): >>>>>>>>>> pm.windows.deleteUI(winName) >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> 2012/1/9 Panupat Chongstitwattana <[email protected]> >>>>>>>>>> >>>>>>>>>>> In Maya 2010, if I run the script to start a UI that is already >>>>>>>>>>> running, it would crash Maya D: How can I check if the UI is already >>>>>>>>>>> running and close it? >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> 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 >>>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> 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 >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> --:: Kurian ::-- >>>>>>>> >>>>>>>> -- >>>>>>>> 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 >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> David Moulder >>>>>> http://www.google.com/profiles/squish3d >>>>>> >>>>>> -- >>>>>> 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 >>>>> >>>> >>>> >>>> >>>> -- >>>> --:: Kurian ::-- >>>> >>>> -- >>>> 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 >>>> >>> >>> >>> >>> -- >>> --:: Kurian ::-- >>> >>> -- >>> 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 >> > > > > -- > David Moulder > http://www.google.com/profiles/squish3d > > -- > 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
