我正在爲Maya編寫一個簡單的工具菜單,我想將其粘貼到模型面板(透視圖)的邊框。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()
主插件被精確地定位,我想在創建時(水平上模型板的左側,垂直 - 在模型面板的中間)。
當模型面板調整大小時,我需要重新定位它,但型號面板不會發出resized()
信號。我會很感激任何建議。
任何從父窗口獲取「resized」信號的方式? – mhlester
@mhlester據我所知,Maya主窗口或任何其他原生Maya小部件在調整大小時不會發出任何事件。 – Kupnu4