Tôi đang viết một trình đơn công cụ đơn giản cho Maya và tôi muốn gắn nó vào biên giới của bảng điều khiển mô hình (phối cảnh).Sự kiện thay đổi kích thước bảng điều khiển 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()
Tiện ích chính được định vị chính xác nơi tôi muốn khi được tạo (nằm ngang ở phía bên trái của bảng điều khiển mô hình, theo chiều dọc - ở giữa bảng điều khiển mô hình).
Tôi cần đặt lại vị trí cho phù hợp khi bảng điều khiển được thay đổi kích thước, nhưng bảng điều khiển mô hình không phát ra tín hiệu resized()
. Tôi đánh giá cao bất kỳ lời khuyên nào.
Bất kỳ cách nào để nhận tín hiệu 'đã thay đổi kích thước' từ cửa sổ chính thay thế? – mhlester
@mhlester theo như tôi biết, cửa sổ chính của Maya hoặc bất kỳ tiện ích Maya gốc nào khác không phát ra bất kỳ sự kiện nào khi được thay đổi kích thước. – Kupnu4