【发布时间】:2015-04-21 04:00:30
【问题描述】:
我正在为 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 据我所知,Maya 主窗口或任何其他原生 Maya 小部件在调整大小时不会发出任何事件。
标签: qt resize pyqt pyside maya