Panupat Chongstitwattana
2018-08-14 08:18:50 UTC
I can drag the widget to get it docking, but I cannot dock it with
dockControl. It would say Object's window not found. Can anyone help me
please? What should I add to make the command work?
from shiboken import wrapInstance
from PySide import QtGui, QtCore
from maya import OpenMayaUI as OpenMayaUI
from maya.app.general.mayaMixin import MayaQWidgetDockableMixin
from maya.OpenMayaUI import MQtUtil
class MyWindow(MayaQWidgetDockableMixin, QtGui.QDialog):
toolName = 'myToolWidget'
def __init__(self, parent = None):
self.deleteInstances()
super(self.__class__, self).__init__(parent = parent)
mayaMainWindowPtr = OpenMayaUI.MQtUtil.mainWindow()
self.mayaMainWindow = wrapInstance(long(mayaMainWindowPtr), QtGui.
QMainWindow)
self.setObjectName(self.__class__.toolName)
self.setWindowFlags(QtCore.Qt.Window)
self.setWindowTitle('My tool')
self.resize(200, 200)
self.myButton = QtGui.QPushButton('My awesome button!!')
self.mainLayout = QtGui.QVBoxLayout()
self.mainLayout.addWidget(self.myButton)
self.setLayout(self.mainLayout)
def dockCloseEventTriggered(self):
self.deleteInstances()
def deleteInstances(self):
mayaMainWindowPtr = OpenMayaUI.MQtUtil.mainWindow()
mayaMainWindow = wrapInstance(long(mayaMainWindowPtr), QtGui.
QMainWindow)
for obj in mayaMainWindow.children():
if type( obj ) == maya.app.general.mayaMixin.MayaQDockWidget:
if obj.widget().objectName() == self.__class__.toolName:
print 'Deleting instance {0}'.format(obj)
mayaMainWindow.removeDockWidget(obj)
obj.setParent(None)
obj.deleteLater()
def run(self):
self.show(dockable = True)
myWin = MyWindow()
myWin.run()
allowedAreas=['right']
cmds.dockControl( area='right', content=myWin.objectName(), allowedArea=
allowedAreas)
# Error: RuntimeError: file <maya console> line 1: Object's window not
found. #
dockControl. It would say Object's window not found. Can anyone help me
please? What should I add to make the command work?
from shiboken import wrapInstance
from PySide import QtGui, QtCore
from maya import OpenMayaUI as OpenMayaUI
from maya.app.general.mayaMixin import MayaQWidgetDockableMixin
from maya.OpenMayaUI import MQtUtil
class MyWindow(MayaQWidgetDockableMixin, QtGui.QDialog):
toolName = 'myToolWidget'
def __init__(self, parent = None):
self.deleteInstances()
super(self.__class__, self).__init__(parent = parent)
mayaMainWindowPtr = OpenMayaUI.MQtUtil.mainWindow()
self.mayaMainWindow = wrapInstance(long(mayaMainWindowPtr), QtGui.
QMainWindow)
self.setObjectName(self.__class__.toolName)
self.setWindowFlags(QtCore.Qt.Window)
self.setWindowTitle('My tool')
self.resize(200, 200)
self.myButton = QtGui.QPushButton('My awesome button!!')
self.mainLayout = QtGui.QVBoxLayout()
self.mainLayout.addWidget(self.myButton)
self.setLayout(self.mainLayout)
def dockCloseEventTriggered(self):
self.deleteInstances()
def deleteInstances(self):
mayaMainWindowPtr = OpenMayaUI.MQtUtil.mainWindow()
mayaMainWindow = wrapInstance(long(mayaMainWindowPtr), QtGui.
QMainWindow)
for obj in mayaMainWindow.children():
if type( obj ) == maya.app.general.mayaMixin.MayaQDockWidget:
if obj.widget().objectName() == self.__class__.toolName:
print 'Deleting instance {0}'.format(obj)
mayaMainWindow.removeDockWidget(obj)
obj.setParent(None)
obj.deleteLater()
def run(self):
self.show(dockable = True)
myWin = MyWindow()
myWin.run()
allowedAreas=['right']
cmds.dockControl( area='right', content=myWin.objectName(), allowedArea=
allowedAreas)
# Error: RuntimeError: file <maya console> line 1: Object's window not
found. #
--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/398e2dee-940b-40eb-ae3b-bec0fc148339%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/398e2dee-940b-40eb-ae3b-bec0fc148339%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.