Maya_PySide2侧边ui
from PySide2 import QtWidgets, QtCore from shiboken2 import wrapInstance import maya.OpenMayaUI as omUI import pymel.core as pm def dockable_window(window_class): main_control = pm.workspaceControl(window_class.ID) win_ptr = omUI.MQtUtil.findControl(window_class.ID) control_wrap = wrapInstance(int(win_ptr), QtWidgets.QWidget) control_wrap.setAttribute(QtCore.Qt.WA_DeleteOnClose) win = window_class(control_wrap) control_wrap.destroyed.connect(win.close) class MyWindow(QtWidgets.QMainWindow): ID = 'testing' def __init__(self, parent, *args, **kwargs): QtWidgets.QMainWindow.__init__(self, parent) #Create a button that will show the geometry when clicked b = QtWidgets.QPushButton('test') b.clicked.connect(self.show_actual_geometry) parent.layout().addWidget(b) def show_actual_geometry(self): """This will work until it is called during closeEvent.""" print self.parent().parent().parent().parent().parent().geometry() def closeEvent(self, event): print self.show_actual_geometry() QtWidgets.QMainWindow.closeEvent(self, event) dockable_window(MyWindow)