If you read the pumpthread code you'll see that you can only initialize it once I believe. So calling it multiple times won't make any difference and just ensures it's running.
Good luck. QT is great. On Wed, Jan 11, 2012 at 3:53 AM, Panupat Chongstitwattana < panup...@gmail.com> wrote: > Thanks David. I think I got it working for now. > > If I want to launch multiple UI, they all will need to initialize > pumpthread? > > > On Tue, Jan 10, 2012 at 7:04 PM, David Moulder > <da...@thirstydevil.co.uk>wrote: > >> http://pastebin.com/czT9EBXM >> >> This should be enough to get you going. >> >> On Tue, Jan 10, 2012 at 10:34 AM, Panupat Chongstitwattana < >> panup...@gmail.com> wrote: >> >>> 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 <da...@thirstydevil.co.uk >>> > 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 < >>>> panup...@gmail.com> 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 <kuria...@gmail.com>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 < >>>>>> justinisr...@gmail.com> 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 <justinisr...@gmail.com> >>>>>>> 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" <kuria...@gmail.com> 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 < >>>>>>> panup...@gmail.com> 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 < >>>>>>>> da...@thirstydevil.co.uk> 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 < >>>>>>>>> panup...@gmail.com> 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 <kuria...@gmail.com>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 < >>>>>>>>>>> cgolhei...@gmail.com> 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 < >>>>>>>>>>>> panup...@gmail.com> 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 < >>>>>>>>>>>> hektor1...@gmail.com> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> It's very simple: >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> winName = "myWindow" >>>>>>>>>>>>> if pm.windows.window(winName, exists=True): >>>>>>>>>>>>> pm.windows.deleteUI(winName) >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> 2012/1/9 Panupat Chongstitwattana <panup...@gmail.com> >>>>>>>>>>>>> >>>>>>>>>>>>>> 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 >>> >> >> >> >> -- >> 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 > -- 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