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)

 

posted @ 2022-04-04 21:37  CGRun  阅读(112)  评论(0编辑  收藏  举报