To parent your window you well need to get the Maya main window and pass
that in as the parent widget

> 2011

def GetMayaMainWindow():
    '''
    :returns: The QtWidget that pertains to the Maya Main Window
    '''
    import maya.OpenMayaUI as mui
    import sip
    ptr = mui.MQtUtil.mainWindow()
    if ptr:
        return sip.wrapinstance(long(ptr), QtCore.QObject)

Then pass the resulting QWidget into your class

eg
a = Browser(GetMayaMainWindow())

I don't know about uic.compileUI as I pre compile all my ui files with the
pyuic4.exe from the command line.

Well, not exactly.  I wrote a PyQt ui to browser and convert them on double
click using os.system

cmd = 'pyuic4 %s > %s' % (DesignFile, OutPutFile)
os.system(cmd)

To be honest, it was on of the 1st things I did so I've never looked at
another way to convert files.  Does your method convert each and every time
you make an instance?

-Dave


On Thu, Aug 5, 2010 at 5:18 PM, <br...@meljunky.com> wrote:

> I edited the class below to reference the class for my browser using the
> following lines of code to show the window:
>
> a = Browser()
>  a.show()
>
> Two things happen.. first the window does not stay "parented" to the main
> Maya window and will disappear under Maya.
>
> Second... using the compiled version of calculatorform that comes with Qt
> works fine. However, when I used uic.compileUi to complile the
> calculatorform.ui. I get the following error:
>
> # Error: ... global name '_' is not defined #
>
> The compiler added a '_' that doesn't belong. For example:
>
> CalculatorForm.setWindowTitle(_( u"Calculator Form"))
>
> If I removed the '_', it will open.
>
> Also, on a ui that I created I had to comment out the following lines
> because:
> test.setCentralWidget(self.centralwidget)
> test.setMenuBar(self.menubar)
> test.setStatusBar(self.statusbar)
>
> They cause a Attribute Error such as:
> # Error: AttributeError ... 'Browser' object has no attribute
> 'setCentralWidget' #
>
> Is there a way to get a compiled version of a Ui to open without having to
> edit the file?
>
> Thanks,
> -brian
>
>
> -------- Original Message --------
> Subject: Re: [Maya-Python] Calling a compiled QT file in Maya
> From: David Moulder <da...@thirstydevil.co.uk>
> Date: Thu, August 05, 2010 8:09 am
> To: python_inside_maya@googlegroups.com
>
> I use multiple inheritance...
>
> import ui_Browser
> class Browser(QtGui.QWidget, ui_Browser.Ui_Form):
>     def __init__(self, parent=None):
>         super(Browser, self).__init__(parent)
>         self.setupUi(self)
>         self.setObjectName('Browser')
>         self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
>
> -Dave
>
> On Thu, Aug 5, 2010 at 2:39 PM, meljunky <br...@meljunky.com> wrote:
>
>> Trying to get QT Ui file to work in Maya I could use the loadUI
>> command for example:
>>
>> import maya.cmds as cmds
>> dialog = cmds.loadUI(f=r'C:/Python26/Lib/site-packages/PyQt4/examples/
>> designer/calculatorform/calculatorform.ui')
>> cmds.showWindow(dialog)
>>
>> Don't expect the calculator to actually work but the UI opens in Maya.
>> But, I want to be able to edit UI elements so I used uic.compileUi to
>> convert the file into a Python file in hopes to make method calls to
>> add and remove UI elements while the window is open.
>>
>> The first four lines are:
>> from PyQt4 import QtCore, QtGui
>>
>> class Ui_CalculatorForm(object):
>>    def setupUi(self, CalculatorForm):
>>        ...
>>
>> At this point I don't know how to call the Ui_CalculatorForm class
>> method setupUi since it needs a different class called CalculatorForm.
>>
>> Thanks in advance.
>>
>> --
>> http://groups.google.com/group/python_inside_maya
>>
>
>
>
> --
> David Moulder
> http://www.google.com/profiles/squish3d
> --
> http://groups.google.com/group/python_inside_maya
>
>  --
> http://groups.google.com/group/python_inside_maya
>



-- 
David Moulder
http://www.google.com/profiles/squish3d

-- 
http://groups.google.com/group/python_inside_maya

Reply via email to