Sto scrivendo un semplice menu di strumenti per Maya e vorrei incollarlo al bordo del pannello del modello (prospettiva).Evento di ridimensionamento del pannello modello di Autodesk Maya
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()
Il widget principale è posizionato esattamente dove voglio quando viene creato (orizzontalmente sul lato sinistro del pannello modello verticale - nel mezzo del pannello di modello).
Ho bisogno di riposizionarlo di conseguenza quando il pannello del modello viene ridimensionato, ma il pannello del modello non emette il segnale resized()
. Gradirei qualsiasi consiglio.
Un modo per ottenere un segnale 'resized' dalla finestra padre, invece? – mhlester
@mhlester per quanto ne so, la finestra principale di Maya o qualsiasi altro widget Maya nativo non emette alcun evento quando ridimensionato. – Kupnu4