Skip to content

Instantly share code, notes, and snippets.

@marvolo3d
Last active December 21, 2017 23:51
Show Gist options
  • Save marvolo3d/b482a679c6b36a763f75b1b06087e81d to your computer and use it in GitHub Desktop.
Save marvolo3d/b482a679c6b36a763f75b1b06087e81d to your computer and use it in GitHub Desktop.
WIP template maya pyside dockable
from Qt import QtWidgets, QtGui
import maya.OpenMayaUI as omui
# from maya.app.general.mayaMixin import MayaQWidgetDockableMixin
import maya.app.general.mayaMixin as mx
import shiboken2
# class MyQWidget(mx.MayaQDockWidget, QtWidgets.QWidget):
class MyQWidget(mx.MayaQWidgetDockableMixin, QtWidgets.QWidget):
def __init__(self, parent=None):
super(MyQWidget, self).__init__(parent=parent)
# self.setSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred )
mainLayout = QtWidgets.QVBoxLayout()
self.setLayout(mainLayout)
mainLayout.addWidget(QtWidgets.QLabel('wow nice label!'))
btn = QtWidgets.QPushButton('cool button!')
btn2 = QtWidgets.QPushButton('not cool button!')
btn.setMinimumHeight(100)
mainLayout.addWidget(btn)
mainLayout.addWidget(btn2)
self.setWindowTitle('dockem duck')
# self.setDockableParameters(retain=False, floating=False)
self.show(dockable=True, floating=False, retain=False)
# self.show()
def dockCloseEventTriggered(self):
print 'yabadaba'
def floatingChanged(self, isFloating):
print 'float the boat: {0}'.format(isFloating)
# def initWidget():
# control_pointer = omui.MQtUtil.findControl('color!') #find workspace control
# widgetParent = shiboken2.wrapInstance(long(control_pointer), QtWidgets.QWidget)
# #MQtUtil.addWidgetToMayaLayout ???
# myWidget = MyQWidget(parent = widgetParent)
# print myWidget.showRepr() # print some stats?
# if cmds.workspaceControl("color!", q=1, ex=1):
# cmds.deleteUI('color!')
# #or
# # cmds.workspaceControl('color!', e=1, restore=1)
# # print 'show existing'
# # cmds.workspaceControl("color!", retain=False, floating=False, hp='fixed', ih=20, uiScript="initWidget()")
# cmds.workspaceControl('SWEET
# myWidget.close()
myWidget = MyQWidget()
print myWidget.showRepr()
print myWidget.dockArea()
print myWidget.objectName() # string name we can find with maya.OpenMayaUI.MQtUtil.findControl()
print myWidget.isFloating()
cmds.workspaceControl(myWidget.objectName() + 'WorkspaceControl', q=1, ex=1)
# cmds.deleteUI(myWidget.objectName())
mx.mixinWorkspaceControls
# currParent = omui.MQtUtil.getCurrentParent()
# mixinPtr = omui.MQtUtil.findControl(self.objectName())
# omui.MQtUtil.addWidgetToMayaLayout(long(mixinPtr), long(currParent))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment