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 <[email protected]>wrote: > http://pastebin.com/czT9EBXM > > This should be enough to get you going. > > On Tue, Jan 10, 2012 at 10:34 AM, Panupat Chongstitwattana < > [email protected]> 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 >> <[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 >> > > > > -- > 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
