Hi! i'm writing a custom toolbox and i want it to be snapped to the left 
side of perspective model panel. To do that i need to track events when 
model panel is scaled or moved, but as fas as i know, Maya widgets don't 
emit any events when scaled or moved.

from PySide import QtCore, QtGui
from maya import OpenMayaUI as omui
from shiboken import wrapInstance

class TestWidget(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent = self.getMayaWindow())

        self.setWindowFlags(QtCore.Qt.
Tool | QtCore.Qt.FramelessWindowHint)
        self.setFixedSize(100, 100)

        panelPtr = omui.MQtUtil.findControl('modelPanel4')
        panel = wrapInstance(long(panelPtr), QtGui.QWidget) 
        
        position =  panel.mapToGlobal(panel.pos())
        self.move(position.x(), position.y() + panel.geometry().height() / 
2 - self.geometry().height() / 2)

        mainLayout = QtGui.QVBoxLayout(self)
        
        button = QtGui.QPushButton('CLOSE')
        button.setFixedSize(80, 80)
        button.clicked.connect(self.deleteLater)
        
        mainLayout.addWidget(button)

    def getMayaWindow(self):
        omui.MQtUtil.mainWindow()    
        ptr = omui.MQtUtil.mainWindow()
        return wrapInstance(long(ptr), QtGui.QWidget)

w = TestWidget()
w.show()

This script should run as intended when Maya model panel is set to "Single 
Perspective View" (one model panel, not four). The TestWidget appears on 
the left center of model panel. I need it always to be there relative to 
model panel.

Any help would be appreciated!

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/python_inside_maya/10a0c21d-d71e-4633-bce0-9705b67b94aa%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to