Ich schreibe ein einfaches Werkzeug-Menü für Maya, und ich möchte es an den Rand des Modell-Panel (Perspektive) zu halten.Autodesk Maya Modell Panel Größe Ereignis
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()
Das Haupt Widget ist genau dort positioniert, wo ich will, wenn es erstellt wird (sich horizontal auf der linken Seite der Modellplatte, vertikal - in der Mitte der Modellplatte).
Ich muss es entsprechend neu positionieren, wenn das Modellpanel in der Größe geändert wird, aber das Model Panel gibt kein resized()
Signal aus. Ich würde mich über jede Beratung freuen.
irgendeine Weise zu beheben ein 'resized' Signal von dem übergeordneten Fenster, anstatt zu bekommen? – mhlester
@mhlester soweit ich weiß, Maya Hauptfenster oder andere native Maya-Widgets geben keine Ereignisse bei der Größenänderung. – Kupnu4